資料結構—選擇排序
阿新 • • 發佈:2021-06-15
選擇排序
選擇排序(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; }