选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是在未排序的部分中选择最小(或最大)的元素,然后将其放在已排序部分的末尾。选择排序不同于冒泡排序,它不需要反复交换元素,因此在某些情况下可能比冒泡排序更快。本文将详细介绍选择排序的工作原理和Python实现。
选择排序的工作原理
选择排序的基本思想是:
- 从未排序的数组中找到最小的元素。
- 将最小元素与未排序部分的第一个元素交换位置。
- 重复上述两步,不断扩大已排序部分,缩小未排序部分,直到整个数组有序。
选择排序的核心思想是每一轮选择一个最小的元素,并将它交换到已排序部分的末尾。这一过程持续多轮,每轮选择一个最小的元素,直到整个数组有序。
下面是一个示例,演示选择排序的过程。我们以升序排序为例:
原始数组:[64, 25, 12, 22, 11]
- 第一轮选择,最小元素为 11,交换位置后数组变为:[11, 25, 12, 22, 64]
- 第二轮选择,最小元素为 12,交换位置后数组变为:[11, 12, 25, 22, 64]
- 第三轮选择,最小元素为 22,交换位置后数组变为:[11, 12, 22, 25, 64]
- 第四轮选择,最小元素为 25,交换位置后数组变为:[11, 12, 22, 25, 64]
- 第五轮选择,最小元素为 64,交换位置后数组不变:[11, 12, 22, 25, 64]