2013-09-22 43 views
0
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) 

我很困惑爲什麼這段代碼不排序數從最低到最高。我應該做選擇排序數字排序功能蟒蛇不工作(選擇排序)

回答

0

x=0更改爲x=y+1。這是一種選擇類型,你可以檢查this尋求幫助。編輯: 更改算法鏈接到選擇排序。

+0

哪個x = 0我應該改爲x = y + 1?或兩者?我應該做選擇排序。 – user2803415

+0

循環內容中的一個。每次從所有項目中選擇時,意味着每次選擇整個數組中的最小項目而不是其他未排序的數組(即從y到len(num))。真的很抱歉錯誤的算法鏈接。 –