选择排序

2021-05-24  本文已影响0人  jeneen1129

分类:

比较类-交换排序

定义:简单直观

Selection sort。从未排序的序列中找到最小的依次进行交换,放到排序的尾部,直到完成排序。

难度:

简单

步骤:

演示:

selectionSort

代码实现(javascript):

function selectionSort(arr) {
    var len = arr.length;
    var minIndex, temp;
    for (var i = 0; i < len - 1; i++) {
        minIndex = i;
        for (var j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {     // 寻找最小的数
                minIndex = j;                 // 将最小数的索引保存
            }
        }
        // 交换
        temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
    return arr;
}

python:

def selectionSort(arr):
    for i in range(len(arr) - 1):
        # 记录最小数的索引
        minIndex = i
        for j in range(i + 1, len(arr)):
            if arr[j] < arr[minIndex]:
                minIndex = j
        # i 不是最小数时,将 i 和最小数进行交换
        if i != minIndex:
            arr[i], arr[minIndex] = arr[minIndex], arr[i]
    return arr

属性:

时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性
O(n²) O(n²) O(n²) O(1) 不稳定

使用场景:

数据规模越小越好,不占用额外的内存空间。

以上仅供学习~~

上一篇 下一篇

猜你喜欢

热点阅读