Python实现选择排序

本文详细介绍了选择排序算法的实现思路及代码实现过程,并通过一个具体的示例来展示如何使用选择排序算法将一个序列从无序变为有序。此外还讨论了算法的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选择排序

实现思路:将一个序列分为两部分,前面是有序序列,后面是无序序列,不断的将后面的无序序列中的最小值添加到前面的有序序列中,直到后面的无序序列中没有值,开始的时候将第一个值作为有序序列。

代码实现:

arr = [7, 4, 3, 67, 34, 1, 8]  # length = 7

def select_sort(arr):
    n = len(arr)
    for j in range(n-1):
        min = j
        for i in range(j+1, n):
            if arr[min] > arr[i]:
                min = i
        arr[min], arr[j] = arr[j], arr[min]
select_sort(arr)
print(arr) # [1, 3, 4, 7, 8, 34, 67]

关键点还是双重循环中参数的配置,在外层循环中我们获取一个0~n-1之间的序列,之后没玄幻一次内部循环中的i的起始值就会加1,直到j+1=n-1的时候循环结束,因为最后一个数的时候就不需要比较了,还有就是交换最小值位置的时候,要放在内层循环结束后进行。
时间复杂度:O(n^2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值