2017-07-29 62 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()?