选择排序
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。
原理:
选择排序的主要操作是交换和比较。在每一步中,算法在未排序的序列中找到最小(或最大)的元素,将其与序列的第一个元素交换。然后,算法会忽略第一个元素(因为它现在已经在正确的位置上了),并继续在未排序的元素中寻找最小(或最大)的元素,并将其与未排序序列的第一个元素交换。这个过程会重复,直到整个序列都有序。
实现:
以下是选择排序的Python实现:
1 | def selection_sort(arr): |
在这个实现中,外部循环遍历整个数组,内部循环在未排序的部分中找到最小的元素。然后,外部循环将找到的最小元素与当前位置的元素交换。这样,每次外部循环结束后,最小元素就会被移到正确的位置。
注意:
- 选择排序的时间复杂度是O(n^2),其中n是待排序元素的数量。虽然它在大数据量的情况下可能不是最优的选择,但它在小数据量的情况下表现良好,并且它的实现相对简单。
- 选择排序是一种不稳定的排序方法,也就是说,如果序列中存在两个相等的元素,选择排序可能会改变它们的相对位置。
评论