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

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

结果

相关推荐
炸膛坦客14 小时前
单片机/C/C++八股:(二十一)include <> 和 include ““ 的区别
c语言·c++
Yupureki14 小时前
《Linux系统编程》12.基础IO
linux·运维·c语言·开发语言·数据库·c++
淮北49414 小时前
bash下好用的快捷键以及linux常用指令
linux·开发语言·ubuntu·bash
炸膛坦客14 小时前
单片机/C/C++八股:(十八)C/C++ 中 sizeof 和 strlen 的区别
c语言·c++
XiYang-DING15 小时前
【LeetCode】LCR 019. 验证回文串 II
算法·leetcode·职场和发展
薛定谔的猫喵喵15 小时前
卸载 Python 3.8 报错 “Could not set file security” 的终极解决方案
开发语言·python
灰色小旋风15 小时前
力扣18 四数之和(C++)
数据结构·算法·leetcode
噜啦噜啦嘞好15 小时前
算法篇:前缀和
数据结构·算法
重生之我是Java开发战士15 小时前
【广度优先搜索】FloodFill算法: 图像渲染,岛屿数量,岛屿的最大面积,被围绕的区域
算法·宽度优先