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

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

结果

相关推荐
勤奋菲菲12 小时前
Egg.js 完全指南:企业级 Node.js 应用框架
开发语言·javascript·node.js
蒂法就是我12 小时前
java集合类的底层类是哪个
java·开发语言
无限进步_12 小时前
冒泡排序的多种实现方式详解
c语言·数据结构·c++·算法
兮山与12 小时前
算法7.0
算法
老花眼猫12 小时前
可自动求解的魔法游戏程序(C语言)
c语言·经验分享·青少年编程·课程设计
小黄人软件13 小时前
用AI写的【实时文件搜索引擎】python源码【找资源】
开发语言·python·搜索引擎
new coder13 小时前
[算法练习]Day 7: 变长滑动窗口
数据结构·算法·leetcode
光影少年13 小时前
rust生态及学习路线,应用领域
开发语言·学习·rust
艾醒14 小时前
探索大语言模型(LLM): 大模型应用与对应的硬件选型一览表
算法
隐语SecretFlow14 小时前
【隐语SecretFlow】 Unbalanced PSI Benchmark性能测试报告
算法·安全·开源