直接插入排序法

时间:2021-02-11 04:33:17
/*直接插入排序法*/
#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]);
}

程序运行结果
直接插入排序法