插入排序算法——C语言实现
下面是完整代码:
#include <stdio.h>
#define MAXSIZE 9
int main()
{
int i, j;//定义两个指针用于标记和循环
float Array[MAXSIZE],key;//定义待排序数组Array和关键字kay
for (i = 0; i < MAXSIZE; i++)//定义一个循环用于输入
scanf_s("%f", &Array[i]);
for (j = 1; j < MAXSIZE; j++)//定义一个循环用于遍历
{
key = Array[j];//将当前值赋值给关键字key
i = j - 1;//i用于标记循环不变式
while (i >= 0 && Array[i] > key)//循环条件:当i>=0且Array[i]大于当前值时
{
Array[i + 1] = Array[i];//从Array[i]开始集体后移
i -= 1;//向前标记
}
Array[i + 1] = key;//将关键字key插入到满足条件的值
}
for (i = 0; i < MAXSIZE; i++)//打印结果
printf("%3.2f\t", Array[i]);
return 0;
}