"""
选择排序
"""
环境:spyder(python3.6)
import random
arr=[] #没有定义长度,长度为0
#随机生成一个数组
def genArray(n):
for i in range(n): #0,1,2,3,4....
#arr[i] 要注意下标越界
arr.append(random.randint(0,999)) #append会扩展这个数组
genArray(10)
#选择排序
def show(arr):
for i in range(len(arr)):
print(arr[i],end=',')
print('\n')
show(arr)
'''算法实现一:按从大到小排序'''
for i in range(len(arr)-1):
for j in range(i+1,len(arr)):
if arr[j]>arr[i]:
temp=arr[j]
arr[j]=arr[i]
arr[i]=temp
show(arr)
输出结果:
362,263,799,872,82,695,836,168,127,601,
872,836,799,695,601,362,263,168,127,82,
算法实现2:按从大到小排序
for i in range(len(arr)-1):
index=i
for j in range(i+1,len(arr)):
if arr[index]<arr[j]:
index=j
arr[i],arr[index]=arr[index],arr[i]
show(arr)
输出结果:(这里又重新随机生成一组数组)
988,893,151,754,269,992,835,331,427,691,
992,988,893,835,754,691,427,331,269,151,