簡體   English   中英

從最小到最大排序列表,不帶list.sort()

[英]Sorting A List From Least to Greatest Without list.sort( )

作為智力挑戰,我正在嘗試執行標題中所述的操作。 我被困住了,想知道是否有人有幫助的想法..?

def main():
    my_list = [1,2,3,4,5,6,3,4,63,3]
    sort(my_list)

def sort(my_list):
    n=0
    m=1
    for number in my_list:
        if my_list[n] < my_list[m]:
            my_list[n] = my_list[n+1]
        n+=1
        m+=1
    print my_list

if __name__ == '__main__':
    main()

排序算法有很多,例如bubblequick sort等,這是一個參考http://www.sorting-algorithms.com/ ,您可以根據描述實現其中的任何一種。

以下是氣泡排序

def main():
    my_list = [1,2,3,4,5,6,3,4,63,3]
    sort(my_list)

def sort(my_list):
    size = len(my_list)
    for i in range(size):
        for j in range(size-i-1):
            if(my_list[j] > my_list[j+1]):
                tmp = my_list[j]
                my_list[j] = my_list[j+1]
                my_list[j+1] = tmp
    print my_list

if __name__ == '__main__':
    main()

希望有幫助!

大多數 python實現使用mergesort算法 1

快速的Google搜索將發現一個實現,但是該算法非常簡單,值得您自己編寫代碼。

1 (實際上,他們使用Tim排序,這是mergesort和插入排序之間的混合...)

def sort(L):
    newlist = []
    for x in range(len(L)):
            newlist.append(min(L))
            L.remove(newlist[x])
    return newlist

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM