1. 程式人生 > >算法:2選擇排序

算法:2選擇排序

lex 開始 spa app sort sele 方法 arr 思路

選擇排序

時間:O(n^2)

實現功能:將數組元素按從小到大的順序排列。

思路:先找出數組中的最小元素,將最小的元素復制給新的數組。

使用python實現。(python中列表與數組相似)

 1 //找出列表中最小的元素
 2 def findSmallest(arr):
 3     smallest = arr[0] //存儲最小的值
 4     smallest_index = 0 //存儲最小的索引
 5     for i in range(1,len(arr)):
 6         if arr[i]<smallest:
 7             smallest = arr[i]
8 smallest_index = i 9 return smallest_index 10 11 12 //選擇排序 13 def selectionSort(arr): 14 newArr = [] 15 for i in range(len(arr)): 16 newArr.append(arr.pop(findSmallest(arr))) 17 return newArr 18 19 print(selectionSort([1,5,9,7,5,3,45,15,26,565,156,25,69226,526]))

運行結果:

[1, 3, 5, 5, 7, 9, 15, 25, 26, 45, 156, 526, 565, 69226]

解析:

findSmallest()方法返回的是原列表中最小的元素的索引
第5行:
  循環從1開始,因為smallest,smallext_index默認取值為原列表的第0個元素,不必從0開始比較.

第16行
arr.pop(i):表示將arr數組中的第i個元素刪除,並返回
newArr.append(item):將元素item追加到newArr列表後面
 
 

算法:2選擇排序