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函数动态开辟内存空间,最后记得要释放。

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

结果

相关推荐
深蓝电商API几秒前
爬虫任务调度:APScheduler 定时执行
开发语言·爬虫·python
kang_jin2 分钟前
超详细 Python 爬虫指南
开发语言·爬虫·python
香水5只用六神2 分钟前
【RTOS快速入门】06_任务状态理论讲解(1)
c语言·stm32·单片机·嵌入式硬件·freertos·rtos·嵌入式软件
Sylvia-girl3 分钟前
C语言-1入门
c语言·开发语言
Rust语言中文社区4 分钟前
【Rust日报】 CEL与Rust实现接近原生速度的解释执行
开发语言·后端·rust
C+++Python7 分钟前
C++ 策略模式实战:从原理到落地
开发语言·c++·策略模式
亓才孓8 分钟前
【Stream】讲常见数据结构转为map<String,Long>
数据结构·windows·python
IT北辰16 分钟前
不规则 Excel“数据提取——教师课表自动汇总实战
开发语言·爬虫·python
天疆说19 分钟前
【拓扑学+航天轨道动力学】同伦(Homotopy)概念解析
人工智能·算法·拓扑学
勿芮介21 分钟前
【研发工具】OpenClaw基础环境安装全教程-Node\NVM\PNPM\Bash
开发语言·node.js·bash·ai编程