选择排序
思想:
将数组分为 有序区 和 无序区, 每一趟排序安排一个无序区中最小数字到有序区的最后一位.
代码:
// Time: O(n^2), Space: O(1) public void sort(int[] arr) { if (arr == null || arr.length == 0) return; int n = arr.length; for (int i = 0; i < n; ++i) { int minIdx = i; for (int j = i+1; j < n; ++j) if (arr[j] < arr[minIdx]) minIdx = j; swap(arr, i, minIdx); } }