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

相关推荐
sensen_kiss几秒前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
会Tk矩阵群控的小木4 分钟前
基于Python的iMessage短信群发与社媒多账号统一管理系统实现
开发语言·windows·python·新媒体运营·开源软件·个人开发
我是一颗柠檬7 分钟前
【Java项目技术亮点】分库分表+数据路由策略:单表5000万后的架构升级方案
java·开发语言·分布式·架构
wu_ye_m9 分钟前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
njsgcs16 分钟前
c# solidworks 创建装配体工程图+bom
开发语言·c#·solidworks
运行时记录21 分钟前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
清辞85323 分钟前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型
潘潘潘34 分钟前
Android网络结构分析——有线网络
android
啦啦啦啦啦zzzz35 分钟前
算法总结(二分查找、双指针)
c++·算法
小林敲代码778835 分钟前
记录一下IDEA中很多变量变色的方案
java·开发语言·spring boot·idea