#include<stdio.h>
int main(){
int i,j;
int a[8]={0,1,2,3,4,5,6,7};
for(i=2;i<8;i++){
a[0]=a[i]; //用哨兵来记录要插入的数值
for(j=i-1;a[j]>a[0];j--){
a[j+1]=a[j]; //一个一个后移,直到找到合适的插入位置
}
a[j+1]=a[0];
}
for(int i=1;i<8;i++){
printf("%d\t",a[i]);
}
return 0;
}
插入排序的思想就是将未排好的数据依次在已排好的数据中找到合适位置进行插入,这里用哨兵可以省掉一个终止条件。