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函数动态开辟内存空间,最后记得要释放。

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

结果

相关推荐
2401_8898846620 分钟前
高性能计算通信库
开发语言·c++·算法
郝YH是人间理想27 分钟前
Pandas库DataFrame数据结构
数据结构·pandas
不想看见40441 分钟前
Hamming Distance位运算基础问题--力扣101算法题解笔记
算法
像污秽一样1 小时前
算法与设计与分析-习题4.1
算法·链表·排序算法
竹烟淮雨1 小时前
C语言指针概念详解:数组指针与二级指针的本质区别
c语言
lhc200906251 小时前
【作业】 贪心算法
算法·贪心算法
天若有情6731 小时前
循环条件隐藏陷阱:我发现了「同循环双条件竞态问题」
c++·学习·算法·编程范式·while循环··竞态
j_xxx404_1 小时前
C++算法:前缀和与哈希表实战
数据结构·算法·leetcode
我能坚持多久1 小时前
【初阶数据结构07】——栈与队列的代码实现与解析
数据结构
We་ct2 小时前
LeetCode 22. 括号生成:DFS回溯解法详解
前端·数据结构·算法·leetcode·typescript·深度优先·回溯