美文网首页
直接选择排序(选择排序)

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

作者: 毕加森 | 来源:发表于2018-04-13 15:15 被阅读0次
一、算法实现
  • 基本实现
/**
 * 直接选择排序(选择排序)
 */
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)——直接选择排序算法详解

相关文章

  • 数据结构之排序

    选择排序1.直接选择排序 原理直接选择排序过程直接选择排序过程 实现: DataWrap.java来模拟待排序的数...

  • Java 常见的 8 种排序算法(内排序)

    排序分类 内部排序 插入排序:直接插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:直接选择排序、堆排序...

  • 程序员必须掌握的8大排序算法

    分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)...

  • 排序

    分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序...

  • Java常用排序算法/程序员必须掌握的8大排序算法

    分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)...

  • 常用排序算法

    分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)...

  • 算法

    排序 类型交换排序:冒泡排序、快速排序插入排序:直接插入排序、希尔排序选择排序:直接选择排序、堆排序归并排序基数排...

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

    一、算法实现 基本实现 二、运行示例 {20, 15, 10, 12}[【10】, 15, 20, 12] //-...

  • 排序

    目的 方便查找 内排序 交换 冒泡排序 快速排序 选择 直接选择 堆排序 插入 -直接插入 堆排序 基数排序

  • 常用排序(收藏)

    1.排序分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择...

网友评论

      本文标题:直接选择排序(选择排序)

      本文链接:https://www.haomeiwen.com/subject/jebckftx.html