Python中的选择排序不会产生任何输出
我试图在python中运行选择排序,这是我正在使用的代码Python中的选择排序不会产生任何输出,python,algorithm,pycharm,selection-sort,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
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
如果有什么影响的话,我用PyCharm作为想法。- 输入数组应该是一个列表,您正在将其设置为一个集合
input_array = [12, 9, 13, 7, 3, 19, 6, 5]
- 不要使用变量名列表,它是内置列表的名称
- 不要将min用作变量名,它是内置函数min的名称
- 这里的主要方法不需要参数
- 您没有调用main方法,请在定义
selection\u sort
- 换线
到minimum, i, j, temp = 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]
def selection_sort(我的_列表):
对于范围内的j(len(my_列表)):
对于范围内的i(j,len(我的列表)):
如果我的清单[i]<我的清单[j]:
我的清单[j],我的清单[i]=我的清单[i],我的清单[j]
返回我的列表
def main():
输入_数组=[12,9,13,7,3,19,6,5]
输出数组=选择数组(输入数组)
打印(输出数组)
[3, 5, 6, 7, 9, 12, 13, 19]
min,i,j,temp=0如何工作?您还跟踪了内置的列表
和内置的min
我已经编辑了代码。这段代码似乎有效,但我有几个问题,第一个是输出数组最大,第二个是为什么颠倒了函数的顺序,最后为什么调用main()。我对python有点陌生。嘿,发条机。您也可以将main
的定义放在selection\u sort
的定义之前,只要您在脚本末尾仍然发出对main
的调用。最后我显式地调用了main
,因为main
只是一个函数,如果希望它运行,就需要调用它。这种行为与Java不同,Java自动调用main方法。结果的元素是按降序排列的,因为您是这样编码的:)再看看您的逻辑,或者使用list(reversed(output_array))
反转列表。
minimum, i, j, temp = 0, 0, 0, 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]