1. 程式人生 > 其它 >資料結構—選擇排序

資料結構—選擇排序

選擇排序

選擇排序(Select Sort) 是直觀的排序,通過確定一個 Key 最大或最小值,再從帶排序的的數中找出最大或最小的交換到對應位置。再選擇次之。雙重迴圈時間複雜度為 O(n^2)

演算法描述:

在一個長度為 N 的無序陣列中,第一次遍歷 n-1 個數找到最小的和第一個數交換。
第二次從下一個數開始遍歷 n-2 個數,找到最小的數和第二個數交換。
重複以上操作直到第 n-1 次遍歷最小的數和第 n-1 個數交換,排序完成。

動圖效果示意圖:
java程式碼實現
public static int[] selectSort(int[] arr) {
        for (int i=0;i<arr.length-1;i++){
            int minidx=i;
            for (int j=i+1;j<arr.length;j++){
                if (arr[minidx]>arr[j]){
                    minidx=j;
                }
            }
            if (minidx!=i){
                int temp=arr[i];
                arr[i]=arr[minidx];
                arr[minidx]=temp;
            }
        }
        return arr;
    }