python篇 选择排序

1.思路整理

在这里插入图片描述
所谓选择排序,就像在给幼儿园老师给小朋友排序,最矮的坐第一排,第二高坐第二排,第三高坐第三排,最高坐最后一排。
用列表或数组实现,即是选择固定的角标给予选定值,比如将角标为0出设定为最小值,将角标为1处设定为第二小值,依次遍历到末尾,就达到了排序的目的,而找到这些符合条件的值的方法,就是在数组或列表中的其他元素的寻找,在拿出来依次放入我选择放入的角标中。

2.举例说明

下面举例一个列表:
值:2 5 1 4 8
标:0 1 2 3 4


第1轮.用下标0与之后的所有下标进行比较,如果大于则交换

下标0与下标1对比 2<5 不交换 此次执行后下标0 值为2
下标0与下标2对比 2>1 交换 此次执行后下标0 值为1
下标0与下标3对比 1<4 不交换 此次执行后下标0 值为1
下标0与下标4对比 1<8 不交换 此次执行后下标0 值为1

本轮循环结束,交换后的值为:

值:1 5 2 4 8

标:0 1 2 3 4


第2轮.用下标1与之后的所有下标进行比较,如果大于则交换

下标1与下标2对比 5>2 交换 此次执行后下标1 值为2
下标1与下标3对比 2<4 不交换 此次执行后下标1 值为2
下标1与下标4对比 2<8 不交换 此次执行后下标1 值为2

本轮循环结束,交换后的值为:

值:1 2 5 4 8

标:0 1 2 3 4


第3轮.用下标2与之后的所有下标进行比较,如果大于则交换

下标2与下标3对比 5>4 交换 此次执行后下标2 值为4
下标2与下标4对比 2<4 不交换 此次执行后下标2 值为4

本轮循环结束,交换后的值为:

值:1 2 4 5 8

标:0 1 2 3 4


第4轮.用下标3与之后的所有下标进行比较,如果大于则交换

下标3与下标4对比 5<8 不交换 此次执行后下标3 值为5

本轮循环结束,交换后的值为:

值:1 2 4 5 8

标:0 1 2 3 4

循环结束


3.代码实现

#选择排序
#定义了一个10~1的列表
t = list(range(10,0,-1))
#遍历列表中需要选定大小的下标,由于最后一位不用排到我们取len(t)-1
for i in range(len(t)-1):
#将选定大小下标后面所有的元素取出,用于对比,故取初值i+1
	for j in range(i+1,len(t)):
#对比
		if t[i] > t[j]:
#大于则交换(此交换方法为python特有)
			t[i],t[j]=t[j],t[i]
#打印排序后的结果
print(t)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值