简单选择排序的工作方式突出"选择"二字,每次从待排序数据中选择符合条件的元素放在已排序元素末尾。对于少量元素的排序,简单选择排序是一个有效的算法。
思想:
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
性能分析:
时间复杂度:O(N^2)
空间复杂度:O(1)
稳定性:不稳定
代码实现:
// Java代码 class SimpleSelectionSort { public static void selectionSort(int[] a) { for (int i = 0; i < a.length - 1; i++) {// 遍历序列 int minIndex = i;// 记录最小元素位置 // 遍历无序序列寻找最小元素 for (int j = i + 1; j < a.length; j++) { if (a[j] < a[minIndex]) {// 更新最小元素下标 minIndex = j; } } // 将最小值放到已排序序列的末尾 int temp = a[i]; a[i] = a[minIndex]; a[minIndex] = temp; } } }