插入排序适合少量元素排序,是一个有效的算法,它是在数组中寻找一个合适的位置再将数值插入进去。
例如递增排序长度为n的数组。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("输入有几个数\n");
scanf("%d",&n);
int f[100];
int i;
for(i=0;i<n;i++){
scanf("%d",&f[i]);
}
int kay;
int j;
for(i=1;i<n;i++){
kay=f[i];//将要插入的数取出来
j=i-1;//将指针指向改数前边的地址
while(j>=0&&f[j]>kay){//比较,如果找到比该数小的数结束循环
f[j+1]=f[j];//依次向后移动
j--;
}
f[j+1]=kay;//将该数赋值到指定位置
}
for(i=0;i<n;i++){
printf("%d ",f[i]);
}
printf("\n");
return 0;
}