02.选择排序算法的通俗讲解(Python)

选择排序顾名思义就是选择你需要的元素。比如说在一组数列中选择最小或者最大的数存放在数列的开头。那么如何做到完美所想的那样。下面以有小到大排列讲解。假如alist = [23 4 15 55 43]是一个待排序数列

首先,记录一个最小数的位置,方便起见,我们就用一个变量pre标记一个待排数列中的第一个元素的位置为最小的数的位置(这是假设第一个数最小,此时pre=0)。将这个位置所在的数与后面的数分别比较,如果alist[pre] 比后面的数还要打,就将pre标记这个比alist[pre]还要小的数,第一次比较之后,如果pre一开始标记的位置变了,即if pre 不等于0,就要执行alist[0],alist[pre] = alist[pre],alist[0](即将两个元素调换),如果等于0 ,不需要改变,经过上述过程,可以得出待排序数列中的最小的数,并且已经把它放在了第一个位置。接下里排序len(alist)-1个元素,重复上述操作。说白了就是执行for循环,

def select_sort(alist):
	for i in range(len(alist)-1):
		pre = i
		for j in range(i+1,len(alist)):
			if alist[pre] > alist[j]:
                #当前所标记的最小的数与当前位置的后面的数进行比较,如果大于后面的数,调换标记
				pre = j 
		if pre != i:
			alist[i], alist[pre] = alist[pre], alist[i]
                #这一行执行的是将所找到的最小数放到最开始标记的那个位置
def main():
	li = [23 4 15 55 43]
	select_sort(li)
	print(li)
if __name__ == "__main__":
	main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值