C语言学习,插入排序

C语言,插入排序是一种简单直观的排序算法,插入排序是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

示例:

// 插入排序函数

void insertionSort (int arr\[\], int n) {

for (int i = 1; i < n; i++) {

int key = arri;

int j = i - 1;

// 将arri插入已排序序列arr0...i-1

while (j >= 0 && arrj > key) {

arrj + 1 = arrj;

j = j - 1;

}

arrj + 1 = key;

}

}

// 打印

void printArray (int arr\[\], int size) {

for (int i = 0; i < size; i++) {

printf("%d ", arri);

}

printf("\n");

}

int main () {

int arr\[\] = {12, 11, 13, 5, 6};

int n = sizeof(arr) / sizeof(arr0);

printf("排序前的数组: \n");

printArray(arr, n);

insertionSort(arr, n);

printf("排序后的数组: \n");

printArray(arr, n);

return 0;

}

运行结果:

排序前:

12 11 13 5 6

排序后:

5 6 11 12 13

相关推荐
zander25810 分钟前
114. 二叉树展开为链表
数据结构·链表·深度优先
雪碧透心凉_19 分钟前
while 循环与循环嵌套
开发语言·python
minglie121 分钟前
zynq高频小数据量PS闭环的三个实验-第0课:目的和目标
学习
黄林晴23 分钟前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
乐观勇敢坚强的老彭26 分钟前
信奥C++一维数组笔记
开发语言·c++·笔记
变量未定义~31 分钟前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
这就是佬们吗34 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH41 分钟前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
自学小白菜43 分钟前
关于提升机器学习算法做预测回归任务精度的方法分享
算法·机器学习·回归·提升精度
恋猫de小郭44 分钟前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter