1、选择排序
选择排序(升序)【不稳定排序】。
原理:
- 给定一个列表,经过第一轮比较后,找到最小值,与第一个位置交换;
- 接着对不包括第一个元素的剩下的元素,找到最小值,与第二个位置交换;
- 重复该过程,直到进行比较的记录只有一个为止;
以 list = [5, 4, 2, 1, 3] 为例:
第一次排序后: [1, 4, 2, 5, 3]
第二次排序后: [1, 2, 4, 5, 3]
第三次排序后: [1, 2, 3, 5, 4]
第四次排序后: [1, 2, 3, 4, 5]
时间复杂度:O(n**2)
空间复杂度:O(1)
算法实现:
def select_sort(lists):
'''
:param lists:
:return: lists
'''
count = len(lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if lists[min] &