import random
import datetime
# 選擇排序
def getmaxindex(index, ls) -> int:
""":type ls list
:type index: int
:return:
"""# 選擇排序時 一開始就認為當前的數的最大的
maxindex = index
length = len(ls)
for i in range(index, length):
if ls[i] > ls[maxindex]:
maxindex = i
return maxindex
def selectsort(data) -> list:
"""選擇排序
:type data: list
:return:
"""length = len(data)
print("排序前-->%s" % data)
start = datetime.datetime.now().strftime("%y-%m-%d %h:%m:%s")
print(start)
for i in range(length):
themax = getmaxindex(i, data)
if i != themax:
temp = data[themax]
# 將大的資料往前挪一位
data[themax] = data[i]
data[i] = temp
end = datetime.datetime.now().strftime("%y-%m-%d %h:%m:%s")
print(end)
return data
if __name__ == "__main__":
datas = list()
for j in range(10000):
integer = random.choice(range(1, 2017))
sort_result = selectsort(datas)
print("排序後 -->%s" % sort_result)
排序一萬個元素大概需要5s
Python實現選擇排序
選擇排序 一種簡單直觀的排序演算法。工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最小 大 元素,然後放到已排序的末尾。直到所有元素均排序完畢。優點 選擇排序與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每...
Python實現選擇排序
實現思路 將乙個序列分為兩部分,前面是有序序列,後面是無序序列,不斷的將後面的無序序列中的最小值新增到前面的有序序列中,直到後面的無序序列中沒有值,開始的時候將第乙個值作為有序序列。實現 arr 7,4,3,67,34,1,8 length 7 defselect sort arr n len ar...
python實現選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...