/*2014年3月12日*****/
/*直接插入排序******/
#include "stdio.h"
#include"stdlib.h"
#include"time.h"
void StraightInsetionSort();
#define M 10
int a[M],b,i,j;
void main()
{
srand((int)time(NULL));
printf("随机生成10个0-9的整数: \n");
for(i=1;i<=M;i++)
{
a[i]=rand()/3276;
printf("%d,",a[i]);
}
printf("\n\n");
printf("直接插入排序后: \n");
StraightInsetionSort();
for(i=1;i<=M;i++)
printf("a[%d]=%d\n",i,a[i]);
}
void StraightInsetionSort()//直接插入排序
{ for(i=2;i<=M;++i)
if(a[i]<a[i-1]){
a[0]=a[i]; //复制为哨兵
a[i]=a[i-1];
for(j=i-2;a[0]<a[j];--j)
a[j+1]=a[j];//记录后移
a[j+1]=a[0];//插入到正确位置
}
}
运行结果:
直接插入排序
最新推荐文章于 2024-03-19 18:50:33 发布