アルゴリズム(3)挿入ソート

ソート原則

ソート我々の手のカードの原理を調整するために、私達とトランプをいわゆる挿入がソートされていない要素を順次仕上げまで、すべてのプラグインを知って、代わりにすでにソート要素の前に挿入されていると言うことですつまり、同じです。
ここに画像を挿入説明

時間複雑

ここに画像を挿入説明

ソートコード

public class InsertionSort {


    /**
     * 插入排序优化版本
     * 适用场景:数组接近有序的情况下
     */
    public void insertionSortV(int[] arr, int a, int n) {
        for (int i = 1; i < arr.length; i++) {
            //将外层循环的元素复制一份,
            int e = arr[i];
            //记录外层元素应该插入的位置
            int j;
            /**
             * 内层循环,与外层循环复制的那个元素进行比较,如果
             * 小于被比较的元素,将被比较的元素向后移动,然后再用复制的元素
             * 在跟以前的前边的元素比较,以此类推,直到找到比他大的元素终止循环,将给元素放在比他大的后边
             */
            for (j = i; j > 0 && arr[j - 1] > e; j--) {
                arr[j] = arr[j - 1];
            }
            arr[j] = e;
        }
    }
}
公開された94元の記事 ウォン称賛55 ビュー110 000 +

おすすめ

転載: blog.csdn.net/Suubyy/article/details/100071953