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

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

结果

相关推荐
克喵的水银蛇1 分钟前
Flutter 通用网络图片封装实战:带占位 / 错误 / 缓存的 CachedImageWidget
开发语言·前端·javascript
程序员-King.2 分钟前
day106—双指针—长度最小的子数组(LeetCode-209)
算法·贪心算法
资深web全栈开发4 分钟前
从零构建即时通讯系统:Go + Vue3 实战指南
开发语言·后端·golang·im 通许
麒qiqi4 分钟前
【数据结构详解】栈与队列的核心原理、实现及应用场景
数据结构
Xの哲學7 分钟前
Linux TTY子系统深度剖析
linux·服务器·算法·架构·边缘计算
moringlightyn8 分钟前
Linux---基础IO(文件理解 文件接口使用 文件系统层面)
linux·运维·服务器·c语言·笔记·系统·文件
小杍随笔8 分钟前
【Zed 编辑器配置全攻略:自动保存、Prettier、终端字体与格式化设置一步到位】
开发语言·rust·编辑器
烟囱土著9 分钟前
捣鼓30天,我写了一个数学加减练习小程序
学习·算法·微信小程序·小程序
Predestination王瀞潞11 分钟前
Python3:Fifteenth 类型注解(Type Hints)
开发语言·python
AndrewHZ13 分钟前
【图像处理基石】如何用OpenCV入门计算机视觉?
图像处理·深度学习·opencv·算法·计算机视觉·机器视觉·cv