选择排序

选择排序

  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
  2. 然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。
  3. 依此进行,直到所有元素均排序完毕。

选择排序的实现

def selectionSort(alist):
    for fillslot in range(len(alist) - 1, 0, -1):
        #每次循环默认第一位置为最大值
        positionOfMax = 0
        #标记当前最大值的位置
        for position in range(fillslot):
            if alist[position] > alist[positionOfMax]:
                positionOfMax = position

        #将当前的最大值与当前列表末尾的元素进行交换
        temp = alist[fillslot]
        alist[fillslot] = alist[positionOfMax]
        alist[positionOfMax] = temp

测试:

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

参考:

  1. 演示动画
posted @ 2019-01-05 14:30  youngliu91  阅读(87)  评论(0)    收藏  举报