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 = arri;

int j = i - 1;

while (j >= 0 && key < arrj)

{

arrj + 1 = arrj;

j--;

}

arrj + 1 = key;

}

}

void print_arry(int *arr,int n)

{

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

{

printf("%d ", arri);

}

}

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

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

结果

相关推荐
All for pursuit.12 分钟前
【动态规划-6】96.不同的二叉搜索树
数据结构·c++·算法·leetcode·动态规划
Zwawa17 分钟前
传感器模块都在交出什么:从模拟电压到数字协议
c语言·单片机·嵌入式
栗子~~21 分钟前
java - logstash-logback-encoder 集成 demo
java·开发语言·logback
rou22 分钟前
Attention(注意力机制)
算法
信奥卷王42 分钟前
[GESP202609 六级] 数组划分
数据结构·算法
ESDWAN1 小时前
跨境网络频繁掉线怎么排查?从企业内网到 SD-WAN 链路的故障诊断
开发语言·网络·php
牧羊人.3331 小时前
动手学深度学习 07|Resnet网络与迁移学习
网络·人工智能·深度学习·神经网络·算法·cnn·迁移学习
程序员zgh1 小时前
C++ erase() 函数用法
c语言·开发语言·c++·学习
lee_tianbai1 小时前
Java SSM 电影票预定系统|完整前后端项目,开箱即用(源码分享)
java·开发语言·数据库
All for pursuit.2 小时前
【并查集-2】399.除法求值
数据结构·c++·算法·leetcode