欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

直接选择排序(选择排序)

程序员文章站 2022-03-09 20:18:08
...
一、算法实现
  • 基本实现
/**
 * 直接选择排序(选择排序)
 */
public static int[] sortSelect(int[] arr) {
    int i, j, temp, min;
    for (i = 0; i < arr.length - 1; i++) {
        min = i;
        for (j = i + 1; j < arr.length; j++) {
            if (arr[min] > arr[j]) {
                min = j;
            }
        }
        if (i != min) {
            temp = arr[i];
            arr[i] = arr[min];
            arr[min] = temp;
        }
    }
    return arr;
}
二、运行示例

{20, 15, 10, 12}
[【10】, 15, 20, 12] //--> 找出第一小的数与在[0]位置的数交换
10, [【12】, 20, 15] //--> 找出第二小的数与在[1]位置的数交换
10, 12, [【15】, 20] //--> 找出第三小的数与在[2]位置的数交换

三、性能分析
  • 时间复杂度

平均时间复杂度为O(n^2)

  • 空间复杂度

空间复杂度为O(1)

  • 稳定性

是不稳定的排序算法

原文:经典排序算法(6)——直接选择排序算法详解

转载于:https://www.jianshu.com/p/9f152b992025