python實現(xiàn)選擇排序?
? 假設(shè)你有一個因為列表狡恬,上面記錄你歌曲的播放數(shù)量,現(xiàn)在需要對音樂列表進行排序,按照播放數(shù)量進行依次排序续徽,并放在一個新的列表中。那么我們怎么用計算機語言實現(xiàn)呢亲澡。選擇排序即是每次對列表進行查找钦扭,并添加到新的列表中。
因此選擇排序的運行時間為O(n^2)床绪。雖然速度不是很快客情,但是很靈活。
?
"""
選擇排序
"""
def findSmallest(arr):
"""
每次將列表中最小的元素索引返回
"""
small = arr[0]
loop = 0
for i in range(len(arr)):
if arr[i] < small:
small = arr[i]
loop = i
return loop
def selectionSort(arr):
"""
每次循環(huán)將列表對象傳入findSmallest函數(shù)中癞己,接收到當前列表值最小的索引
然后將該值從原列表刪除膀斋,添加到新列表中,最后返回一個有序的新列表
"""
newArr = []
for i in range(len(arr)):
loop = findSmallest(arr)
newArr.append(arr.pop(loop))
return newArr
if __name__ == "__main__":
arr = [2, 4, 1, 6, 10, 3]
new_arr = selectionSort(arr)
print(new_arr)