✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】
选择排序是排序算法系列的第三个要介绍的算法!
选择排序既属于比较类排序也属于内部排序。
😺一、算法原理
🐶1.1 算法原理
选择排序(Select Sort)是一种简单直观的排序算法,属于选择排序的一种。
选择排序首先再原始序列中找到最小元素,将其存放至排序序列的起始位置,然后从剩余序列中继续寻找最小的元素,将其放置已经排序序列的末尾,重复上述操作,直至所有元素排序完毕。
🐶1.2 算法步骤
- 步骤一:从原始序列中找到最小的元素,将其和第一个位置的元素做交换;
- 步骤二:从剩下的序列数据中选择最小的元素,将其和第二个位置的元素做交换;
- 步骤三:重复上述步骤,直到完成所有数据的交换。
😺二、动图演示
😺三、程序实现
def selection_sort(array):
# 第一个for表示遍历次数
for i in range(len(array) - 1):
# 将起始元素设为最小元素
min_index = i
# 第二个for表示查找到的最小元素与未查找的元素比较的次数
for j in range(i + 1, len(array)):
if array[j] < array[min_index]:
# 如果当前元素比最小元素小,则把当前元素角标记为最小元素角标
min_index = j
# 完整地查找一遍后将最小元素与起始元素互换
array[min_index], array[i] = array[i], array[min_index]
return array
if __name__ == '__main__':
arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
sort =selection_sort(arr)
print(sort)
输出结果为:
[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]