思想:
将数组分为 有序区 和 无序区, 每一趟排序安排一个无序区中最小数字到有序区的最后一位.
代码:
// 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);
}
}
京公网安备 11010502036488号