選擇排序的python實現

2022-08-27 05:06:14 字數 1126 閱讀 3339

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 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...