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

    }

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    家庭记账本开发进度6
    家庭记账本开发进度5
    家庭记账本开发进度4
    家庭记账本开发笔记3
    大道至简阅读笔记01
    个人作业 数组(续)
    二维数组
    个人作业1-数组
    软件工程第一周开课微博
    第一周学习进度条报告
  • 原文地址:https://www.cnblogs.com/neversayno/p/5056522.html
Copyright © 2011-2022 走看看