使用 python3 选择排序

Selection sort using python3

def selection_sort(li):
    new_list = []
    a = li[0]
    for x in range(1, len(li)):
        if li[x] < a:
            a = li[x]
            new_list = a
    print(new_list)


b = [1, 2, 5, 3, 7, 4]
selection_sort(b)

为什么上面的代码returns是空列表。 谢谢

使用visualization. Do follow the steps how to use selection sort

了解什么是选择排序
def selection_sort(li):

    for i in range(len(li)): 
        min_idx = i 
        for j in range(i+1, len(li)): 
            if li[min_idx] > li[j]: 
                min_idx = j         
        li[i], li[min_idx] = li[min_idx], li[i]
            
    print(li)

b = [1, 2, 5, 3, 7, 4]
selection_sort(b)

现在,从您的代码角度来看,您的 selection sort 算法不正确。此外,您不需要初始化另一个列表来存储排序元素,而是您的函数参数 list 足以存储排序元素。