选择排序
思路:首先找到数组中最小的那个元素,然后与数组中的第一个元素交换位置,然后找到剩余元素中的最小元素与数组中的第二个元素交换位置。重复进行以上步骤直到完成所有元素的排序。
伪码:
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²。
插入排序