python排序算法-(2)选择排序
选择排序是一种简单直观的排序算法,工作原理如下: 首先在未排序的数据序列中找到最小(大)元素,存放到排序序列起始位置, 然后再从剩余未排序元素中继续寻找最小(大)元素, 然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
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
# 将元素交换以排列数组
(array[ind], array[min_index]) = (array[min_index], array[ind])
# 测试
array=random.sample(range(0, 100), 50)
print("原始数组为:")
print(array)
selectionSort(array)
print('经选择排序后的数组为:')
print(array)
运行环境:python3.8
运行结果:
原始数组为:
[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]
经选择排序后的数组为:
[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]