select sort又名選擇排序,排序法很多都是O(n)^2,不過我們都希望是O(n),如果有人想到線性方法,也許會推翻前面的古人,然後會使用新演算法
python3:
import random #import 模塊
list1=[]
def ini(): #寫一函式產生list
for i in range(10):
n=random.randint(0,20)
list1.append(n)
ini()
print(list1)
def sort():
for j in range(10):
min=j #最小值在j
for k in range(j+1,10): #從比鄰j開始
if (list1[k]<list1[min]):
min=k #有更小就更新
if(j!=min):
list1[j],list1[min]=list1[min],list1[j] #交換
sort() #排序
print(list1)
選擇排序是以指標的方式,更換list的值位置做到目的,在交換的時候注意是j和min交換,由於是新寫法,所以位置要正確,這裡的時間效能依然是O(n)^2,當資料量龐大時是很慢的,除了選擇排序,還有水桶排序,快速排序,都是很有名的演算法