python实现选择排序

选择排序(解释都在源码里)

选择排序思想
第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,
然后再从剩余的未排序元素中寻找到最小元素,
然后放到已排序的序列的末尾。
以此类推,直到全部待排序的数据元素的个数为零

'''选择排序
内层循环:
第一次从待排序的数据元素中选出最小的一个元素,
存放在序列的起始位置,
然后再从剩余的未排序元素中寻找到最小元素,
然后放到已排序的序列的末尾。

外层循环:
以此类推,直到全部待排序的数据元素的个数为零
'''

#将列表分成有序跟无序两部分,
#每次在无序列表中选择最小的放在有序列表末尾
#假设无序列表的第一个为最小的,
#跟其他的一个个比较
#如果找到更小就标记下标,直到末尾,
#最后将找到的最小值跟跟假设的最小值的位置交换
li = [10,9,8,7,6,5,1,2,3,4]
l = len(li)

for j in range(0, l):
	min_index = j  #每次假设无序列表的第一个为最小值
	for i in range(j+1, l):
		if li[min_index] > li[i]:
			min_index = i  #标记最小值位置
	li[j], li[min_index] = li[min_index], li[j]  #跟无序列表第0个交换位置,即放到有序列表末尾
print(li)

#最差最优时间复杂度:O(n平方)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值