首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的选择排序没有输出

Python中的选择排序没有输出
EN

Stack Overflow用户
提问于 2014-07-12 12:10:39
回答 2查看 114关注 0票数 0

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

代码语言:javascript
复制
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

我得到的输出是

代码语言:javascript
复制
Process finished with exit code 0

如果这有任何影响的话,我使用PyCharm作为这个想法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-12 12:16:53

  • input_array应该是一个列表,您正在使它成为一个集合 input_array = 12、9、13、7、3、19、6、5
  • 不要使用变量名称列表,它是内置列表的名称。
  • 不要使用min作为变量名,它是内置函数min的名称。
  • 在这里,您不需要为您的主要方法进行论证
  • 不是在调用主方法,而是在selection_sort定义之后调用它
  • 换行 最小值,i,j,temp =0 至 最小值,i,j,temp = 0,0,0,0
票数 2
EN

Stack Overflow用户

发布于 2014-07-12 12:55:57

这将按升序排序:

代码语言:javascript
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24712793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档