Python中的选择排序不会产生任何输出

时间:2014-07-12 12:10:40

标签: python algorithm pycharm selection-sort

我试图在python中运行选择排序,这是我使用的代码

def main(list):
    input_array = [12, 9, 13, 7, 3, 19, 6, 5]
    output_array = selection_sort(input_array)
    print(output_array)


def selection_sort(param):

    for i in range(0, (len(param) - 1)):
        min = i
        for j in range(i + 1, len(param)):
            if param[min] < param[j]:
                min = j

            if min != i:
                temp = param[i]
                param[i] = param[min]
                param[min] = temp
    return param

我得到的输出是

Process finished with exit code 0

我使用PyCharm作为主意,如果有任何后果的话。

2 个答案:

答案 0 :(得分:2)

  • input_array应该是一个列表,你正在使它成为一个集合

    input_array = [12, 9, 13, 7, 3, 19, 6, 5]
    
  • 不要使用变量名称列表,它是内置列表的名称

  • 不要使用min作为变量名,它是内置函数min
  • 的名称
  • 这里你的主要方法不需要参数
  • 您没有调用主要方法,请在selection_sort
  • 定义后调用它
  • 更改行

    minimum, i, j, temp = 0
    

    minimum, i, j, temp = 0, 0, 0, 0
    

答案 1 :(得分:0)

这将按升序排序:

def selection_sort(my_list):
    for j in range(len(my_list)):
        for i in range(j, len(my_list)):
            if my_list[i] < my_list[j]:
                my_list[j], my_list[i] = my_list[i], my_list[j]
    return my_list



def main():
    input_array = [12, 9, 13, 7, 3, 19, 6, 5]
    output_array = selection_sort(input_array)
    print(output_array)
[3, 5, 6, 7, 9, 12, 13, 19]