选择排序
以从小到大为例进行说明。
选择排序就是定义出一个最小值下标,然后遍历整个剩下的数组选择出最小的放进最小值下标的位置。
时间复杂度
O(N)
遍历一次即可
空间复杂度
O(1)
稳定性
不稳定
代码
public void selectSort(int[] array) {
// i 作为最小值下标
for (int i = 0; i < array.length; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
// 找到真正的最小值下标后进行交换
swap(array[minIndex], array[i]);
}
}
private void swap(int x, int y) {
int tmp = x;
x = y;
y = tmp;
}