选择排序
思路:首先找到数组中最小的那个元素,然后与数组中的第一个元素交换位置,然后找到剩余元素中的最小元素与数组中的第二个元素交换位置。重复进行以上步骤直到完成所有元素的排序。
伪码:
class SelectionSort () {
public static void sort (Caparable[] a) {
int N = a.length();
//开始循环数组
for (int i = 0; i < N; i++) {
//min表示最小元素的下标,开始时假设第一个元素就是最小的
int min = i;
//循环剩余元素,找到最小的元素
for (int j = i + 1; j < N; j++) {
if (a[j] < a[min]) {
min = j;//最小元素下标赋给min
}
swap(a[i], a[min]);//交换元素
}
}
}
}
复杂度分析:双层循环,复杂度为n²。
插入排序