选择排序

作者: shenyoujian | 来源:发表于2018-05-31 01:25 被阅读16次

    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次。

    相关文章

      网友评论

        本文标题:选择排序

        本文链接:https://www.haomeiwen.com/subject/pcsfsftx.html