python排序算法-(2)選擇排序
選擇排序是一種簡(jiǎn)單直觀的排序算法,工作原理如下: 首先在未排序的數(shù)據(jù)序列中找到最?。ù螅┰?,存放到排序序列起始位置, 然后再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最?。ù螅┰?, 然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
import random
# 選擇排序
def selectionSort(array):
? ? n = len(array)
? ? for ind in range(n):
? ? ? ? ? ?# 在未排序的部分中尋找最小的元素
? ? ? ? ? ?min_index = ind
? ? ? ? ? ?for j in range(ind + 1, n):
? ? ? ? ? ? ? ? if array[j] < array[min_index]:
? ? ? ? ? ? ? ? ? ? min_index = j
? ? ? ? ? ?# 將元素交換以排列數(shù)組
? ? ? ? ? ?(array[ind], array[min_index]) = (array[min_index], array[ind])
# 測(cè)試
array=random.sample(range(0, 100), 50)
print("原始數(shù)組為:")
print(array)
selectionSort(array)
print('經(jīng)選擇排序后的數(shù)組為:')
print(array)
運(yùn)行環(huán)境:python3.8
運(yùn)行結(jié)果:
原始數(shù)組為:
[59, 4, 97, 8, 84, 28, 95, 68, 44, 85, 71, 69, 21, 41, 88, 60, 78, 52, 79, 65, 10, 1, 93, 32, 96, 5, 23, 49, 45, 87, 46, 15, 42, 57, 26, 75, 35, 33, 12, 89, 39, 43, 9, 40, 77, 19, 22, 7, 86, 80]
經(jīng)選擇排序后的數(shù)組為:
[1, 4, 5, 7, 8, 9, 10, 12, 15, 19, 21, 22, 23, 26, 28, 32, 33, 35, 39, 40, 41, 42, 43, 44, 45, 46, 49, 52, 57, 59, 60, 65, 68, 69, 71, 75, 77, 78, 79, 80, 84, 85, 86, 87, 88, 89, 93, 95, 96, 97]