直接插入排序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}

猜你喜欢

转载自www.cnblogs.com/lbrs/p/11888636.html