算法学习之InsertSort

2018-10-26  本文已影响0人  Garfield猫

今天咱们来简单聊一聊这个叫做插入排序的算法。

思路:

下面是一张比较直观的InsertSort的GIF

InsertSort.gif

性能分析:

最佳情况:T(n) = O(n) 最坏情况:T(n) = O(n2) 平均情况:T(n) = O(n2)

空间复杂度:O(1) 排序方式:In-place

稳定性:稳定

代码示例(Java版):

public class InsertSort {

    public int[] insert_sort(int[] arr) {
        int arr_length = arr.length;
        int j;
        if (arr_length <= 1) return arr;
        for (int i = 1; i < arr_length; i++) {
            int temp = arr[i];
            for (j = i - 1; j >= 0; j--) {
                if (temp < arr[j]) arr[j + 1] = arr[j];
                else break;
            }
            arr[j + 1] = temp;
        }
        return arr;
    }

    private void print(int[] arr) {
        System.out.println();
        for(int i:arr) System.out.print(i + " ");
        System.out.println();
    }

    public static void main(String[] args) {
        int[] arr = {0, 5, 9, 7, 8, 4, 2, 3, 1, 6};
        InsertSort IS = new InsertSort();
        IS.print(IS.insert_sort(arr));
    }
}
上一篇下一篇

猜你喜欢

热点阅读