选择排序Python实现
# -*- coding: utf-8 -*-
# @Time : 2019/10/28 20:06
# @Author : yuzhou_1shu
# @Email : yuzhou_1shu@163.com
# @File : selection_sort.py
# @Software: PyCharm
def selection_sort(collection):
"""
用Python实现的插入排序算法
:param collection: 待排序序列
:return: 升序排好的对应序列
"""
length = len(collection)
# 算法核心是每次选取一个最小的元素放在第一位
for i in range(length - 1):
# 首先假设第一位是最小的,并用min_loc记录下这个位置
min_loc = i
# j从i+1也就是第二位开始循环,找有没有比min_loc位置上更小的元素
for j in range(i + 1, length):
# 如果找到了,修改min_loc
if collection[j] < collection[min_loc]:
min_loc = j
# 通过上层循环找到最小值,每次将最小值与当前位置的值进行交换
if min_loc != i:
collection[min_loc], collection[i] = (collection[i], collection[min_loc])
return collection
if __name__ == "__main__":
list1 = [5, 5, 1, 4, 1, 2, 3]
print("排序前: ", list1)
print("排序后: ", selection_sort(list1))