【问题标题】:number sorting function python not working (selection sort)数字排序功能python不起作用(选择排序)
【发布时间】:2013-09-22 03:36:59
【问题描述】:
nums = [554, 565, 367, 69, 869, 965, 506, 136, 913, 463, 987, 315, 967, 35]
print(nums)
y=0
x=0
min=nums[x]
while y<len(nums):
  while x<len(nums):
    if min>nums[x]:
      c=x
      min=nums[c]
    x=x+1
  x=0
  tmp=nums[y]
  nums[0]=min
  y+=1
  min=tmp

print(nums)

我很困惑为什么这段代码没有将数字从最低到最高排序。我应该做选择排序

【问题讨论】:

    标签: python list sorting while-loop numbers


    【解决方案1】:

    x=0 更改为x=y+1。这是一个选择排序,您可以查看this 寻求帮助。

    编辑: 将算法链接更改为选择排序。

    【讨论】:

    • 应该将哪个 x=0 改为 x=y+1?或两者?我应该做选择排序。
    • 循环内容中的那个。每次您从所有项目中进行选择时,这意味着每次您选择整个数组中的最小项目而不是未排序数组的其余部分(即,从 y 到 len(nums) )。真的很抱歉错误的算法链接。
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    相关资源
    最近更新 更多