1. 程式人生 > >選擇排序Python程式碼及註釋

選擇排序Python程式碼及註釋

#Author:Anthony
def findSmallest(arr):#尋找最小值
smallest=arr[0]#初始預設0索引位置的值為最小值
smallest_index=0#索引
for i in range(1,len(arr)):#去除0索引位置仍需比較len(arr)-1次,且i代表索引
if smallest>arr[i]:#判斷當前最小值與索引為i處的值的大小
smallest=arr[i]#當 smallest>arr[i]時,就將arr[i]處的值設為最小值
smallest_index=i#最小值所對應的索引值
return smallest_index#返回最小值的索引
def seclectSort(arr):#選擇排序 newArr=[]#首先建立一個空陣列,存放排序後的陣列 for i in range(len(arr)):#迴圈len(arr)次 smallest=findSmallest(arr)#每次迴圈時呼叫findSmallest(),得出陣列arr中的最小值的索引 smallest_value=arr.pop(smallest)#將索引所對應的最小值從arr中移除,則smallest_value就是本次迴圈最小值,arr為去除本次迴圈最小值後的陣列,並掛起 newArr.append(smallest_value)#將最小值新增到newArr中,則newArr中的元素從小到大依次排列
return newArr#返回選擇排序後的陣列 instance=[2,6,8,7,5,4,9] result=seclectSort(instance) print(result)
pop()是list物件中定義的一個方法,用於取出一個元素並且刪除它
>>>a = [1, 2, 3]
>>>b = a.pop(1)
>>>a
>>>[1, 3]
>>>b
>>>2