选择排序

发布时间 2023-05-23 07:14:22作者: 晓枫的春天

参考实现 

'''
选择排序
第一次遍历找到最小的数据放到列表的开头,
第二次遍历找到剩余元素的最小元素放到刚才的元素的后面,

'''

#基础班选择排序
def select_sort_simple(list):
    new_list = []  # 定义新雷柏哦,
    for i in range(len(list)):
        # 获取最小值放到新列表中
        min_value = min(list)
        new_list.append(min_value)
        list.remove(min_value)
    return new_list


nums = [5, 4, 7, 0, 52]
print(select_sort_simple(nums))


# 原地排序实现选择排序
def select_sort(list):
    for i in range(len(list) - 1):  # 第 i 趟
        min_loc = i  # 假设第一个元素最小
        # 获取最小值放到新列表中
        for j in range(1 + i, len(list)):
            if list[j] < list[min_loc]:
                min_loc = j #如果假设不成立,交换索引
        list[i], list[min_loc] = list[min_loc], list[i] #交换位置


nums = [5, 4, 7, 0, 52]
select_sort(nums)
print(nums)