python用选择法进行排序_python算法-选择排序

核心算法:固定位置,选择元素,即:先从序列中,找到最小的元素,放在第一个位置,之后找到第二小的元素,放在第二个元素,以此类推,就可以完成整个排序工作了。

代码示例如下:

x=[6,3,2,7,4,9,5]

xLen = len(x)

for i in range(xLen-1):

min = i

#遍历完成之后,min就指向了最小元素的下标

for j in range(i+1, xLen):

if x[min] > x[j]:

min = j

#把将最小的元素值和坐标为i的元素值进行交换

temp = x[min]

x[min] = x[i]

x[i] = temp

print(x)

返回结果:[2, 3, 4, 5, 6, 7, 9]

代码解释:

内层循环:

for j in range(i+1, xLen):

if listx[min] > listx[j]:

min = j

i表示外层循环执行时,使用的元素坐标。此代码使用min变量存储的元素坐标对应的值和i坐标后的所有元素进行逐一比较,如果大于,则将min变量存储的坐标改为j。

外层循环:

第一次循环找到最小值,第二个循环找到次小值,第三次循环找到第三小的值,以此类推循环结束就将所有值按照升序进行排序了。

代码逻辑算法过程解析:

x=[6,3,2,7,4,9,5]

xLen = len(x)

n=0

for i in range(xLen-1):

min = i

print("i=%d"%i)

#遍历完成之后,min就指向了最小元素的下标

for j in range(i+1, xLen):

print("j=%d"%j)

print("%d和%d比较大小"%(x[min],x[j]))

if x[min] > x[j]:

min = j

print("min=%d"% min)

#把将最小的元素值和坐标为i的元素值进行交换

temp = x[min]

x[min] = x[i]

x[i] = temp

n+=1

print ("第%d次排序结果:%s"%(n,x))

print("最后排序结果:%s"%x)

代码打印结果:

1280813-20180822163034059-1912678947.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值