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

相关推荐
wabs66639 分钟前
关于图论【最短路径之Bellman_ford 算法(单源有限最短路)|卡码网96.城市间货物运输III的思考】
数据结构·算法·图论·卡码网·bellman_ford·单源有限最短路
leoZ2311 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino
IT古董1 小时前
【MES学习笔记系列】MES 厂商与产品对比
笔记·学习
程序员老陆2 小时前
Qt的QThread::usleep和FFmpeg的libavutil模块的av_usleep哪个精度高一些?
开发语言·qt·ffmpeg·音视频
wangyue_msn_862 小时前
Agent知识学习笔记——03 RAG
笔记·学习·ai编程
呱呱巨基2 小时前
Linux 查找命令
linux·笔记·学习·查找命令
2601_963869952 小时前
【计算机毕业设计】基于Java的相框定制系统的设计与实现
java·开发语言·课程设计
lsylalalala3 小时前
常见的排序算法1
数据结构·算法·排序算法
名字还没想好☜3 小时前
Go 的 unsafe.Pointer 实战:零拷贝 []byte↔string 转换与三条铁律
开发语言·后端·golang·go·unsafe
怪奇云呼军3 小时前
从声音特征到 CRM 回流:闪电智能 Voice Agent 沟通策略自适应系统 v1 实战
android·人工智能·python·音视频·语音识别