插入排序:
就是先将第一个值看成一个有序的数组,将第二个值往这个数组里面插,依次直到最后一个值
即:它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动
#include<stdio.h>
#include<Windows.h>
int main() {
int high[] = { 175,167,180,178,162,165,174,173,170,182 };
int len = sizeof(high) / sizeof(high[0]);
for (int i = 1;i < len - 1;i++) { //一共比较n-1轮
int perindex = i - 1; //找到前一个值的坐标
int num = high[i]; //将值赋值到一个变量中
//如果前面的值没有越界.并且值还大于要插入的值
while (perindex >= 0 && high[perindex] > num) {
high[perindex+1] = high[perindex]; //将前面的值向后移动
perindex--; //继续更前的一个值
}
high[perindex + 1] = num; //比较完后,将这个值插入
}
for (int i = 0;i < len;i++) {
printf("%d ",high[i]);
}
printf("\n");
system("pause");
return 0;
}