/*直接插入排序法*/
#include<stdio.h>
#include<time.h>
#define N 10
void StraightInsertSort(int *x)
{
int i,j,key;
for(i=1;i<N;i++)
{
j=i;
key=x[i];
while(j>0 && key<x[j-1]) /*如果key小于j-1的值,并且j大于0*/
{
x[j]=x[j-1]; /*将第x[j-1]个记录赋值给第x[j]个记录*/
j--;
}
x[j]=key; /*x[j]等于key*/
}
}
main()
{
int i,j,x[N];
srand(time(0));
for(i=0;i<N;i++)
x[i]=rand()%50;
printf("排序前:");
for(i=0;i<N;i++)
printf("%d ",x[i]);
StraightInsertSort(x);
printf("\n排序后:");
for(i=0;i<N;i++)
printf("%d ",x[i]);
}
程序运行结果