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

相关推荐
Felven1 分钟前
B. The Secret Number
算法
一路往蓝-Anbo2 分钟前
STM32单线串口通讯实战(三):协议层设计 —— 帧结构、多机寻址与硬件唤醒
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网
Love Song残响4 分钟前
高效自动化清理临时文件方案
java·开发语言·spring
youngee116 分钟前
hot100-63买卖股票的最佳时机
数据结构·算法·leetcode
古城小栈8 分钟前
Rust 中符号语法 一文全晓
开发语言·后端·rust
Swift社区11 分钟前
LeetCode 464 我能赢吗
算法·leetcode·深度优先
QK_0013 分钟前
STM--32PWM动态输出
算法
爱吃生蚝的于勒15 分钟前
【Linux】零基础深入学习动静态库+深入学习地址
linux·运维·服务器·c语言·数据结构·c++·学习
沃斯堡&蓝鸟18 分钟前
DAY34 文件的规范拆分和写法
开发语言·python
ss27318 分钟前
final关键字如何创造线程安全的对象
开发语言·python