2017-07-29 68 views
-2
   a=[12,11,13,21,1,2,3,45,65] 
      i=0 
      j=1 
      k=0 
      newarr=[] 
      while(len(a)>=k): 
        if (a[i]>a[j]):   
         a[i],a[j]=a[j],a[i]  
         i=i+1 
         j=j+1  

      k=k+1 

打印(一)排序一個列表排序無功能

我沒有得到預期的輸出。 有人可以識別嗎?

回答

0

您正在以錯誤的方式實現算法。那麼我認爲你應該學習不同的排序算法來排序和列出在其他語言的Python或數組。

例如:Bubble Sort ...最簡單的一個學習。

listing=[12,34,5,33,89,3] 
for i in range(0,len(listing)-1): 
    for j in range(0,len(listing)-i-1): 
     if listing[j]>listing[j+1]: 
      temp=listing[j] 
      listing[j]=listing[j+1] 
      listing[j+1]=temp 
print(listing) 

還有一件事要提。函數list.sort()也使用穩定算法進行排序。 在這裏閱讀Which sorting algorithm is used by STL's list::sort()?