图解选择排序
其时间复杂度为O(n²)。
大O表示法,会省略诸如1/2这样的常数。运行时间O(n1/2n)也是O(n²)。
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1,len(arr)) :
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
print (selectionSort([5,3,6,2,10])) # => [2, 3, 5, 6, 10]