C语言——插入排序

先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

#include <stdio.h>

#include <stdlib.h>

void insertion_sort(int *arr, int n)

{

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

{

int key = arr[i];

int j = i - 1;

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

{

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

j--;

}

arr[j + 1] = key;

}

}

void print_arry(int *arr,int n)

{

for (int i = 0; i < n; i++)

{

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

}

}

int main()

{

int n;

scanf_s("%d", &n);

int *arr = (int *)malloc(sizeof(int) * n);

if (arr == NULL)

{

return 1;

}

else

{

for (int i=0; i < n; i++)

{

scanf_s("%d", arr + i);

}

insertion_sort(arr, n);

print_arry(arr, n);

}

free(arr);

return 0;

}

使用了malloc函数动态开辟内存空间,最后记得要释放。

自定义了两个函数模块,一个是插入排序函数,一个是打印函数

结果

相关推荐
炯哈哈25 分钟前
【上位机——MFC】序列化机制
开发语言·c++·mfc·上位机
程序员爱钓鱼28 分钟前
循环语句:for、range -《Go语言实战指南》
java·数据结构·算法
蓝莓味柯基29 分钟前
Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
开发语言·python·正则表达式
隐世131 分钟前
C++多态讲解
开发语言·c++
矿渣渣31 分钟前
YAFFS2 文件系统的 `yaffs_dev` 数据结构详解
数据结构·文件系统·nand flash·yaffs2
码上飞扬1 小时前
Java大师成长计划之第20天:Spring Framework基础
java·开发语言
刚入门的大一新生1 小时前
C++初阶-string类的模拟实现1
开发语言·c++
LabVIEW开发1 小时前
LabVIEW中算法开发的系统化解决方案与优化
算法·labview
Phoebe鑫1 小时前
数据结构每日一题day17(链表)★★★★★
数据结构·链表
梁下轻语的秋缘1 小时前
每日c/c++题 备战蓝桥杯(洛谷P1115 最大子段和)
c语言·c++·蓝桥杯