#include <stdio.h>
#define MAX_NUM 10
void array_print(int array[], int len)
{
int i = 0;
for (i = 0; i<len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
int insert_sort(int array[], int len)
{
int i = 0;
int j = 0;
int temp = 0;
for (i = 1; i < len; i++)//默认第一个元素是有序,后面为无序
{
if (array[i] < array[i-1])// 若该元素比前一个元素大,说明前面元素都是有序的,不需要排序
{
for (j = i-1; j >= 0 && array[i] < array[j]; j--)//结束条件:array[i] < array[j] 因为若是array[i]>array[j]就是有序的,不需要排序
{
array[j+1] = array[j];//前一个元素值赋值给后一个元素
}
array[j+1] = array[i];//内循环完后,需要存放array[i],内循环结束后,j--,需j+1位置处存放array[i]
}
array_print(array, len);
}
return 0;
}
int main()
{
int i = 0;
int array[MAX_NUM] ={0};
for (i = 0; i < MAX_NUM; i++)
{
array[i] = rand()%MAX_NUM;
}
insert_sort(array, MAX_NUM);
return 0;
}
linux C插入排序
最新推荐文章于 2021-08-06 10:12:43 发布
本文详细介绍了插入排序算法的实现过程,通过C语言代码展示了插入排序如何对一个随机生成的整数数组进行排序。在排序过程中,数组的每个元素会与其前一个元素比较,如果小于前一个元素,则进行交换,直到整个数组有序。最后,文章提供了排序后的数组打印,以验证排序效果。
299

被折叠的 条评论
为什么被折叠?



