插入排序算法

  #include <stdio.h>
  #include <stdlib.h>
  void output(int *a,int len);
  void InsertSort(int *array, int len);

  int main()
  {
    int a[6]={1,5,2,9,4,3};
    InsertSort(a,6);
    output(a,6);
    printf("\n");
    system("pause");

    return 0;
  }

  void InsertSort(int *array, int len)
  {
  int i;
  for(i=1;i<len;i++)
    {
      int cur=i;   //当前位置
      int last=cur-1;  //上一个位置
      int temp = array[cur];
      while(array[last] > temp && last>=0)    //当前大小小于上一个
      {
        array[last+1]=array[last];             //上一个后移
        last--;
      }                                              //当前小于等于上一个
      array[++last]=temp;               // 插入当上一个后面
    }
  }

  void output(int *a,int len)
  {
    int i;
    for(i=0;i<len;i++)
    {
      printf("%d ",a[i]);
    }
  }

posted @ 2019-03-10 22:34  一人之下冯宝宝  阅读(113)  评论(0编辑  收藏  举报