插入排序根据名字很好理解,就是将要排序的数组分成两个部分,一边是有序的,另一边是将要被排序的,每次从被排序的部分取出一个数据,与前部分的数组进行比较,然后将这个数据放到合适的位置,下面是C语言代码:
#include <stdio.h>
void insertsort(int a[], int size);
int mian()
{
int a[8]={9,1,3,10,4,6,22,0};
insertsort(a,8);
return 0;
}
void insertsort(int a[], int size)
{
int i,j;
for(i=1; i<size; i++)
{
int tmp=a[i];
for (j=i; j>=0 && tmp<a[j-1]; j--)
{
a[j]=a[j-1];
}
a[j]=tmp;
}
}
插入排序的平均算法复杂度为O(n2),相比较而言,这种算法是比较慢得,因此如果需要排序的数据量很小,例如,量级小于千,那么插入排序还是一个不错的选择。