插入排序:
从第二个元素开始遍历,再与其前面的元素想比较,找到自己合适的位置。
移动方式:
输入排序:4 9 1 6 7 2 3 8
4 9
1 4 9
1 4 6 9
1 4 6 7 9
1 2 4 6 7 9
1 2 3 4 6 7 9
1 2 3 4 6 7 8 9
代码:
#include <stdio.h>
int num[1000];
int main(){
int n,x,y;
printf("输入排序的总个数:");
scanf("%d",&n);
for(int i=0;i<n;++i)
scanf("%d",num+i);
int Ac,k,j;
for(int i=1;i<n;++i){
Ac=num[i];k=i-1;
j=i;
while(k>=0 && num[k]>Ac){
num[k+1]=num[k];
k--;
}
if(k!=i-1){
num[k+1]=Ac;
}
for(int i=0;i<j+1;++i)
printf("%d ",num[i]);
printf("\n");
}
return 0;
}