"""选择排序"""
"""
思想是:对一个列表进行查找,记录下最小值和下标,之后根据下标查找出最小的那个元素,删掉的同时加入到另一个列表中
这样就形成了按照从小到大排序的效果。
"""
# 查找列表中最小的元素,然后进行排序
def ChooseSmall(arr):
smalllist = arr[0] # 把列表中第一个元素取出来
smalllist_index = 0 # 第一个元素的下标
for i in range(1, len(arr)): # 把列表中的元素进行下标遍历
# 如果此处的<= 变成>= 就是按照从大到小排列
if arr[i] <= smalllist: # 判断如果遍历出来的数据小于我们进行判断的元素,时间复杂度O(n²)
smalllist = arr[i] # 把小于的列表中的元素直接赋值给我们判断的元素
smalllist_index = i # 把小于的元素的下标给判断元素的下标
return smalllist_index # 把我们最小的元素的下标直接返回
def ChooseSort(arr):
NewArr = list() # 定义一个空的列表来接收我们排序出来的数据
for i in range(len(arr)): # 从第一个数据进行遍历,到最后一个数据,range不取len(arr)
smallnum = ChooseSmall(arr) # 用上面的函数找出来,最小值
NewArr.append(arr.pop(smallnum)) # 把我们找出来的最小值加到新的列表中,在从原先的列表中删除掉
return NewArr
NumList = [9,2,3,60,88,1,4]
SortList = ChooseSort(NumList)
print(SortList)