python用选择法进行排序_Python 选择排序

简单的方法更好用,简单的问题也不容易发现。第二个函数的交换位置我想了很久。

"""选择排序

Selectionsort.py"""

# 以序号为依据

def Selectionsort1():

A = [-9, -8, 640, 25, 12, 22, 33, 23, 45, 11, -2, -5, 99, 0]

for i in range(len(A)):

min = i

for j in range(i + 1, len(A)): # 上一个值右边的数组

if A[min] > A[j]: # 使min为最小值,遇到比min小的值就赋值于min

min = j

A[i], A[min] = A[min], A[i] # 交换最小值到左边

print ('Selectionsort1排序后的数组:', A)

# 以数值为依据

def Selectionsort2():

A = [-9, -8, 640, 25, 12, 22, 33, 23, 45, 11, -2, -5, 99, 0]

counter = 0 # 记录循环次数和位置

array = []

for i in A:

counter += 1

for j in A[counter:]: # 缩小范围

if i > j: # 使i为最小值

i = j

A.remove(i)

A.insert(counter - 1, i)

# 把最小值置于列表左边,避免重复比较

array.append(i)

print('Selectionsort2排序后的数组:', array)

Selectionsort1()

Selectionsort2()

小花花

小花花

124***4671@qq.com1年前 (2019-07-14)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值