zoukankan      html  css  js  c++  java
  • 数据结构之插入排序

    插入排序:  1比较2移位3插入

    1、首先,插入第i个元素,设置哨兵元素 X=H[i,]那么要比较 i与 j(j<i  , j--)的各位上的元素。

    2、如果发现一个 H[i] <H[j] ,就把j的元素外后移动一位。    当H[i] >=H[j]时,就把 H[j+1] =X

    3、前i-1个元素都是有序的。

    public class InertSort {

        public static void InsertSort(int[] H) {
            for (int i = 1; i <= H.length-1 ; i++) {
                int x = H[i];
                int j = i - 1;
                for (; j >= 0; j--) {                                     //在这里debug一下,可得j是可以传到循环外的,由于前面有 j = i- 1;这里就不能重新int j
                    if (x < H[j]) {
                        H[j + 1] = H[j];
                    }
                    else break;
                }
                H[j+1] = x;                                              //易错点,这里是比较的是H[j]与x,插入到的应是  j+1
            }
            for (int k : H) {
                System.out.print(k + " ");
            }
            System.out.println(" ");
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[] H = { 4, 2, 6, 3, 7, 21, 33, 14, 28, 24, 31,33,2 };
            InsertSort(H);
        }

    }

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    uniapp 小程序分享功能
    uniapp 输入有值后按钮变色
    css 跑马灯
    uniapp 复选框问题
    【Python】where cut query melt函数用法
    【Python】Pivot_table透视表用法及CategoricalDtype自定义排序
    【Python】Merge函数的用法
    【Python】extract及contains方法(正则提取筛选数据)
    Promise
    CSS垂直居中的方法
  • 原文地址:https://www.cnblogs.com/neversayno/p/5056522.html
Copyright © 2011-2022 走看看