python实现选择排序

选择排序

  1. 算法思想:
    它的原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的一端,直到全部待排序的数据元素排完.选择排序是不稳定的排序方法(如果待排数据已经有序,复杂度仍不会减少)
    选择排序(Selection sort)是对冒泡排序的改进版,优化不是很大: 冒泡排序每比较一次交换一次位置,而选择排序是记录下最大值(或最小值)的下标,在一轮比较结束后只交换一次,因此少了很多交换次数.

  2. 实现
    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)

一个可以查看排序演示和较详细介绍的网站
点我查看排序的可视化演示

如有错误还望指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值