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

    基本思想:简单排序的一种。如果玩过扑克牌应该都知道顺子,这时有一把顺子但是顺序是乱的,你要去按顺序整理。那第二张牌和第一张牌比较,调整顺序后前两张牌就是有序的,接着第三张牌插入前两张的有序列中,形成三张牌的有序序列。以此类推,最后能够获得一个按顺序排列的顺子。

    算法复杂度:O(n^2)

    代码:

      public class Insertion_Sort {
      static void insertion(int [] a)
        {
            for (int i = 1; i < a.length; i++) {
                int sen = a[i];
                int j = i - 1;
                for (; j >= 0; j--)
                    if (a[j] > sen)
                        a[j + 1] = a[j];
                    else
                    {
                        break;
                    }
                a[j + 1] = sen;
    
            for (int n:a)
                System.out.print(n+" ");
            System.out.println();
            }
        }
    
        public static void main(String []args)
        {
            int [] a = {5,8,7,1,4,3,2};
            insertion(a);
        }
    }

    输出结果:

    5 8 7 1 4 3 2           //8插入5
    5 7 8 1 4 3 2           //7插入{5,8}
    1 5 7 8 4 3 2           //1插入{5,7,8}
    1 4 5 7 8 3 2           //4插入{1,5,7,8}
    1 3 4 5 7 8 2          //3插入{1,4,5,7,8}
    1 2 3 4 5 7 8         //2插入{1,3,4,5,7,8}

  • 相关阅读:
    杭电 搜索 1253 胜利大逃亡
    杭电 搜索 1258 Sum It Up
    杭电搜索 2612 Find a way
    杭电 搜索 水题1072 Nightmare
    杭电1175简单搜索 连连看
    杭电 1372 Knight Moves
    杭电 oj Rescue 1242
    杭电 1241 Oil Deposits
    杭电 2100 Children’s Queue
    杭电 1103 Flo's Restaurant
  • 原文地址:https://www.cnblogs.com/lbrs/p/11888636.html
Copyright © 2011-2022 走看看