选择排序:
selectionSort–选择排序:选出来,排一起。
-
升序:选出元容器中最小值,依次站好。
# 选出最小值 def findMinimum(arr): # Stores the Minimum minN = arr[0] # Stores the index of the Minimum minN_index = 0 for i in range(1, len(arr)): if arr[i] < minN: minN_index = i minN = arr[i] return minN_index # 选择排序 def selectionSort(arr): newArr = [] for i in range(len(arr)): # 选最小值,排一起 smallest = findMinimum(arr) newArr.append(arr.pop(smallest)) return newArr print(selectionSort([5, 3, 6, 2, 10]))
输出打印:
[2, 3, 5, 6, 10]
-
降序
只需把找最小值,换成找最大值即可def findMaximum(arr): maxN = arr[0] maxN_index = 0 for i in range(1, len(arr)): if arr[i] > maxN: maxN_index = i maxN = arr[i] return maxN_index
提示:需要特别arr.pop(smallest)
一句话,表示找出的最小值需要从原数组中挪走,不参加下次选择。