1. 程式人生 > 實用技巧 >使用Lombok優缺點

使用Lombok優缺點

選擇排序是一種簡單直觀的排序演算法,無論什麼資料進去都是 O(n²) 的時間複雜度。所以用到它的時候,資料規模越小越好。唯一的好處就是不佔用額外的記憶體空間。

1.演算法步驟

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。

重複第二步,直到所有元素均排序完畢。

2.動圖演示

3.程式碼實現

public int[] sort(int[] sourceArray) throws Exception {
    int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);

    // 總共要經過 N-1 輪比較
    for (int i = 0; i < arr.length - 1; i++) {
        int min = i;

        // 每輪需要比較的次數 N-i
        for (int j = i + 1; j < arr.length; j++) {
            if (arr[j] < arr[min]) {
                // 記錄目前能找到的最小值元素的下標
                min = j;
            }
        }

        // 將找到的最小值和i位置所在的值進行交換
        if (i != min) {
            int tmp = arr[i];
            arr[i] = arr[min];
            arr[min] = tmp;
        }

    }
    return arr;
}