选择排序python

选择排序(Selection sort): 每一趟从列表 无序区 元素中选择最小的一个元素作为首元素,再一趟选择列表无序区最小的数放到第二个位置上,直到排完为止

选择排序简单易懂的形式:

def select_sort_simple(li):
    li_new = []  # 创建新列表
    for i in range(len(li)):
        min_val = min(li)  # 选出最小值
        li_new.append(min_val)  # 将最小值添加到新列表
        li.remove(min_val)  # 移除原列表的最小值,避免重复选择
    return li_new

代码实现:

def select_sort(li): # li为列表   
    for i in range(len(li)-1):  # 最后一趟排好序后剩余最后一个数自然归位
        min_loc = i  # 第一趟假设第一个数为最小数
        for j in range(i+1, len(li)):  # 遍历无序区
            if li[j] < li[min_loc]:  # 若无序区有更小的数
                min_loc = j  # 则将最小数下标赋值给min_loc
        li[min_loc], li[i] = li[i], li[min_loc] # 将每趟最小的放到有序区
posted @ 2023-06-06 22:05  天才九少  阅读(30)  评论(0)    收藏  举报