插入排序算法

有些话、适合烂在心里 提交于 2019-12-28 20:08:05

  #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]);
    }
  }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!