选择排序
-
算法思想: 它的原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的一端,直到全部待排序的数据元素排完.选择排序是不稳定的排序方法(如果待排数据已经有序,复杂度仍不会减少) 选择排序(Selection sort)是对冒泡排序的改进版,优化不是很大: 冒泡排序每比较一次交换一次位置,而选择排序是记录下最大值(或最小值)的下标,在一轮比较结束后只交换一次,因此少了很多交换次数. -
实现 python版本 3.7.2
def selectionSort(alist):
for fillslot in range(len(alist) - 1, 0, -1):
positionOfMax = 0
for location in range(1, fillslot + 1):
if alist[location] > alist[positionOfMax]:
positionOfMax = location
alist[fillslot], alist[positionOfMax] = alist[positionOfMax], alist[fillslot]
alist = [1, 5, 8, 4, 2, 1, 6, 5, 7, 8]
selectionSort(alist)
print(alist)
一个可以查看排序演示和较详细介绍的网站 点我查看排序的可视化演示
如有错误还望指出
|