C语言学习,插入排序

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

示例:

// 插入排序函数

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

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

int key = arr[i];

int j = i - 1;

// 将arr[i]插入已排序序列arr[0...i-1]中

while (j >= 0 && arr[j] > key) {

arr[j + 1] = arr[j];

j = j - 1;

}

arr[j + 1] = key;

}

}

// 打印

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

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

printf("%d ", arr[i]);

}

printf("\n");

}

int main () {

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

int n = sizeof(arr) / sizeof(arr[0]);

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

相关推荐
无望__wsk5 分钟前
Python第一次作业
开发语言·python·算法
Word码12 分钟前
[C++语法]-vector(用法详解及实现)
开发语言·c++
Lips61115 分钟前
2026.1.25力扣刷题笔记
笔记·算法·leetcode
龚礼鹏17 分钟前
图像显示框架八——BufferQueue与BLASTBufferQueue(基于android 15源码分析)
android·c语言
代码雕刻家20 分钟前
4.3.多线程&JUC-多线程的实现方式
java·开发语言
梦65021 分钟前
网络传输七层协议
开发语言·网络·php
源代码•宸28 分钟前
Leetcode—746. 使用最小花费爬楼梯【简单】
后端·算法·leetcode·职场和发展·golang·记忆化搜索·动规
南 阳28 分钟前
Python从入门到精通day16
开发语言·python·算法
WK100%31 分钟前
二叉树经典OJ题
c语言·数据结构·经验分享·笔记·链表
沉默-_-33 分钟前
力扣hot100-子串(C++)
c++·学习·算法·leetcode·子串