📜  选择排序算法(1)

📅  最后修改于: 2023-12-03 15:28:21.883000             🧑  作者: Mango

选择排序算法

选择排序是一种简单的排序算法,其基本思路是每次从未排序部分选择最小(或最大)的元素,与未排序部分的第一个元素交换位置,直到所有元素排序完毕。

算法步骤

选择排序的算法步骤如下:

  1. 从未排序部分中,找到最小(或最大)的元素,记录其下标;
  2. 将该元素与未排序部分的第一个元素交换位置;
  3. 已排序部分扩大一个元素,未排序部分缩小一个元素;
  4. 重复步骤 1-3,直到未排序部分为空。
算法分析
  • 时间复杂度:$O(n^2)$
  • 空间复杂度:$O(1)$
  • 稳定性:不稳定

选择排序的时间复杂度为 $O(n^2)$,虽然与冒泡排序相同,但选择排序的交换操作次数比冒泡排序少很多,因此相对来说效率更高。

代码实现

Python 代码实现:

def selection_sort(arr):
    for i in range(len(arr)):
        min_idx = i
        for j in range(i+1, len(arr)):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr
总结

选择排序作为一种简单的排序算法,在小数据量的情况下表现良好,但在大数据量的情况下效率不高,需要采用更加高效的排序算法。