排序算法之选择排序

    选择排序对于数组a[1:n]需要进行n次遍历,每次遍历找到第i大的元素,将其与第i位元素进行交换后对a[i+1:n]进行处理。每次遍历进行n-i次比较,1或0次交换,时间复杂度为O(n),对初始数据不敏感。

    对选择排序进行优化可得到树形选择排序和堆排序。

def SelectSort(a):
    for i in range(len(a)):
        min = a[i]
        index = i
        for j in range(i,len(a)):
            if a[j] < min:
                min = a[j]
                index = j
        a[i],a[index] = a[index],a[i]
    return a


if __name__ == '__main__':
    a = [1, 7, 3, 9, 14, 2, 5, 9, 6, 10]
    SelectSort(a)
    print(a)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值