zoukankan      html  css  js  c++  java
  • 直接插入排序算法

    直接插入排序代码
      转自 https://www.cnblogs.com/skywang12345/p/3596881.html
         http://blog.csdn.net/morewindows/article/details/6665714

    设数组为a[0…n-1]。

    1.      初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1

    2.      将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。

    3.      i++并重复第二步直到i==n-1。排序完成。


    //new int[]{1,3,5,2},4
    void insert_sort(int a[], int n)
    {
    int i, j, k;

    for (i = 1; i < n; i++)
    {
    //为a[i]在前面的a[0...i-1]有序区间中找一个合适的位置
    for (j = i - 1; j >= 0; j--)
    if (a[j] < a[i])
    break;
    //如找到了一个合适的位置
    if (j != i - 1)
    {
    //将比a[i]大的数据向后移
    int temp = a[i];
    for (k = i - 1; k > j; k--)
    a[k + 1] = a[k];
    //将a[i]放到正确位置上
    a[k + 1] = temp;
    }
    }
    }

  • 相关阅读:
    【程序2】
    【程序1】
    基数排序
    归并排序
    选择排序
    leetcode15
    leetcode221
    leetcode322
    leetcode921
    leetcode922
  • 原文地址:https://www.cnblogs.com/shuaishuai1993/p/8258179.html
Copyright © 2011-2022 走看看