数据结构算法

选择排序

2018-05-31  本文已影响16人  shenyoujian

1、什么是选择排序

选择排序是对冒泡排序的改进,在每次遍历列表只做一次交换。它在每次遍历无序区时找到最大的值,并在完成遍历后,把它放在正确的位置。


image.png

2、选择排序的Python实现

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

        temp = alist[fillslot]
        alist[fillslot] = alist[positionofMax]
        alist[positionofMax] = temp


alist = [54,26,93,17,77,31,44,55,20]
selectionSort(alist)
print(alist)
# [17, 20, 26, 31, 44, 54, 55, 77, 93]

3、选择排序的分析

可以看到选择排序的时间复杂度为O(n^2)跟冒泡排序一样,但是由于交换次数减少,所以选择排序要更快些。例如前面的列表,选择排序只需要交换n-1=8次,而冒泡排序要20次。

上一篇 下一篇

猜你喜欢

热点阅读