直接插入类排序:
假设有数据集合A<3,2,5,8,4,7,6,9,1>。有序区间:A【0】,无序区间A【1】....A【8】,每次将无序区间的第一个元素取出与有序区间的元素进行比较,将无序区间的第一个元素放到有序区间的合适的位置。
//直接插入排序算法
void InsertionSort(int a[],int n)
{
int i,j;//i遍历有序区间,j遍历无序区间
int x;
for(i=1;i<n;i++)
{
x=a[i];
for(j=i-1;j>=0;j--)
{
if(a[j]>x) a[j+1]=a[j];//将无序区间的第一个元素与有序区间的元素进行比较
else break;
}
a[j+1]=x;
}
//输出排序后的数据集合
for(i=0;i<n;i++)
printf("%5d",a[i]);
}