原理

每次找出第i小的元素,即 选择排序 - 图1 中最小的子元素,然后将这个元素与第i个位置上的元素交换

性质

  • 稳定性 :由于交换两个元素操作的存在,选择排序是不稳定的
  • 时间复杂度:
    • 最优、平均和最坏:选择排序 - 图2

      代码实现

      1. public void select_sort(int[] a) {
      2. for (int i = 0; i < a.length; i++) {
      3. int min = a[i];
      4. int min_index = i;
      5. for (int j = i + 1; j < a.length; j++) {
      6. if (a[j] < min) {
      7. min = a[j];
      8. min_index = j;
      9. }
      10. }
      11. int tmp = a[i];
      12. a[i] = a[min_index];
      13. a[min_index] = tmp;
      14. }
      15. }