第一种简单排序:只将最大值放前面进行逐个排序
# 降序排列
lst = [1,9,8,7,11,20,12,13,12]
for item in range(len(lst) - 1):
max_index = item
for i in range(max_index + 1, len(lst)):
if lst[i] > lst[max_index]:
max_index = i
lst[item], lst[max_index] = lst[max_index], lst[item]
print(lst)
第二种简单排序:同时获取最大值和最小值,最大值放最前面,最小值放最后面,循环更优
import math
# 降序排列
lst = [1,9,8,7,11,20,12,11,12,13,12,11,11,20,31]
length = len(lst)
for item in range(math.ceil(length / 2)):
max_index = item
min_index = length -1 - item
for i in range(max_index + 1, length - item):
if lst[i] > lst[max_index]:
max_index = i
if lst[ -1 - i ] < lst[min_index]:
min_index = length -1 - i
if lst[max_index] == lst[min_index]:
break
elif item == min_index:
lst[length -1 - item], lst[item] = lst[item], lst[length -1 - item]
if max_index != length -1 - item:
lst[item], lst[max_index] = lst[max_index], lst[item]
elif item != min_index:
lst[-1 - item], lst[min_index] = lst[min_index], lst[-1 - item]
if item != max_index:
lst[item], lst[max_index] = lst[max_index], lst[item]
print(lst)