原理:给你一串无序数,先把第一个数当成已经排好的序列,与这个已经排好的序列进行比较,(以从小往大排为例),遇到比自己大的,让其往后走,直到找到逼自己小的,然后插入。
#include<stdio.h>
int main()
{
int n,i,k,j,a[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
k=a[i];
for(j=i;j>0 && a[j-1]>k;j--){
a[j]=a[j-1];
}
a[j]=k;
}
for (i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
#include<stdio.h>
int main()
{
int n,i,k,j,a[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
k=a[i];
for(j=i;j>0 && a[j-1]>k;j--){
a[j]=a[j-1];
}
a[j]=k;
}
for (i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}