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

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

结果

相关推荐
IT北辰几秒前
用 Python 自动解析药品规格并计算包装总容量 —— pandas + 正则实战
开发语言·python·pandas
松涛和鸣3 分钟前
DAY38 TCP Network Programming
linux·网络·数据库·网络协议·tcp/ip·算法
资生算法程序员_畅想家_剑魔6 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
ss2737 分钟前
ThreadPoolExecutor七大核心参数:从源码看线程池的设计
java·数据库·算法
zzoood8 分钟前
【PHP】富文本编辑器图片自动追加域名
开发语言·php
林shir10 分钟前
Java基础1.4-运算符
java·开发语言
qq_4335545417 分钟前
C++ 状压DP(01矩阵约束问题)
c++·算法·矩阵
虫小宝18 分钟前
返利app排行榜系统设计:基于大数据计算的实时排名算法实现
大数据·算法
C雨后彩虹22 分钟前
字符串拼接
java·数据结构·算法·华为·面试
LYFlied24 分钟前
【每日算法】LeetCode 279. 完全平方数(动态规划)
前端·算法·leetcode·面试·动态规划