python选择排序

本文介绍了选择排序算法,通过循环寻找列表中的最小值并与其所在位置的元素交换,从而逐步完成排序。文章详细解释了代码思路,并展示了如何用Python实现选择排序的过程。
摘要由CSDN通过智能技术生成

选择排序

选择排序的基本思路是通过循环找到乱序列表中最小的那个值,然后把最小的那个值跟列表中的第一个值交换位置

在这里插入图片描述

如上图所示第一次循环之后从列表中找到了最小的那个值并且把最小值跟第一个值交换,交换之后右边依然是乱序状态。

然后就从剩下的列表中在找到一个最小值跟列表中的第二个值交换位置,以此类推知道所有的元素排列完毕

代码思路

现在有一个列表 [64, 25, 12, 22, 11],我们一眼就能看出来最小的值是11对应的下标是4,但是计算机并不知道啊。即便是我直接告诉它它也不能信,它会选择自己去判断,毕竟计算机比较死板。

# 创建一个列表num_list
number_list = [64,25,12,22,11]
# 欺骗计算机最小的那个值对应64,对应的下标是0
min_index = 0
# 计算机选择相信自己循环挨个进行验证
for i in range(0,len(number_list)):
    if number_list[min_index] > number_list[i]:
        min_index = i
print(min_index)

在这里插入图片描述

可以看到循环之后计算机果然找到了最小值对应的下标是4

接下来就可以进行交换了,把下标为4的那个值交换到0号位置

# 找到最小的那个值之后把这个值交换到0号位
number_list[0],number_list[min_index] = number_list[min_index],number_list[0]
print(number_list)

在这里插入图片描述

经过刚才一套花里胡哨的操作后终于把最小值11放到了0号位置,但是剩下的数依然是乱序,因此还需要刚才的操作,因为0号位置已经确定,所以下次最小的那个值就应该放在1号位置了

for i in range(1,len(number_list)):
    if number_list[min_index] > number_list[i]:
        min_index = i
number_list[1],number_list[min_index] = number_list[min_index],number_list[1]
print(number_list)

在这里插入图片描述

12也被移动到了2号下标,剩下的代码思路都是一样的需要像刚才那样的循环至少还要写两次,像这种重复性的代码自然也是可以使用循环来简化代码的

最终代码

# 创建一个列表num_list
number_list = [64,25,12,22,11]
for i in range(len(number_list)):
    # 欺骗计算机最小的那个值对应的下标是i
    min_index = i
    # 计算机选择相信自己
    for j in range(i+1,len(number_list)):
        if number_list[min_index] > number_list[j]:
            min_index = j
    # 找到最小的那个值之后把这个值交换到i号位
    number_list[min_index],number_list[i] = number_list[i],number_list[min_index]
print(number_list)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_42847500

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值