【问题标题】:sorting one list without sorted function排序一个没有排序功能的列表
【发布时间】:2017-07-29 11:49:04
【问题描述】:
             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   

打印(一)

我没有得到预期的输出。 有人能认出吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    您以错误的方式实现算法。好吧,我认为您应该学习不同的排序算法,以便在 python 或其他语言中的数组中进行排序和列出。

    例如:冒泡排序...最容易学习的一种。

    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()?

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 2017-10-09
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多