C语言——插入排序

先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

#include <stdio.h>

#include <stdlib.h>

void insertion_sort(int *arr, int n)

{

for (int i = 1; i < n; i++)

{

int key = arr[i];

int j = i - 1;

while (j >= 0 && key < arr[j])

{

arr[j + 1] = arr[j];

j--;

}

arr[j + 1] = key;

}

}

void print_arry(int *arr,int n)

{

for (int i = 0; i < n; i++)

{

printf("%d ", arr[i]);

}

}

int main()

{

int n;

scanf_s("%d", &n);

int *arr = (int *)malloc(sizeof(int) * n);

if (arr == NULL)

{

return 1;

}

else

{

for (int i=0; i < n; i++)

{

scanf_s("%d", arr + i);

}

insertion_sort(arr, n);

print_arry(arr, n);

}

free(arr);

return 0;

}

使用了malloc函数动态开辟内存空间,最后记得要释放。

自定义了两个函数模块,一个是插入排序函数,一个是打印函数

结果

相关推荐
清水白石0082 分钟前
Python 内存陷阱深度解析——浅拷贝、深拷贝与对象复制的正确姿势
开发语言·python
phltxy8 分钟前
算法刷题|模拟思想高频题全解(Java版)
java·开发语言·算法
愚者游世16 分钟前
template学习大纲
开发语言·c++·程序人生·面试·visual studio
阿里嘎多学长17 分钟前
2026-03-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
宵时待雨18 分钟前
C++笔记归纳10:继承
开发语言·数据结构·c++·笔记·算法
csbysj202020 分钟前
TypeScript String
开发语言
田梓燊23 分钟前
最长的连续序列到底怎么写
算法·哈希算法·散列表
小温冲冲24 分钟前
QML vs Qt Widgets:深度对比与选型实战指南
开发语言·c++·qt
smchaopiao27 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
一叶落43830 分钟前
LeetCode 21. 合并两个有序链表(C语言详解 | 链表经典题)
c语言·数据结构·c++·算法·leetcode·链表