没有list.sort()将列表从最小到最大排序

时间:2013-08-11 03:18:33

标签: python list sorting

作为一项智力挑战,我正在努力做标题中描述的内容。我被困住了,想知道是否有人有任何帮助想法......?

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

3 个答案:

答案 0 :(得分:3)

有许多排序算法,例如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()
希望有所帮助!

答案 1 :(得分:1)

大多数 python实现使用mergesort algorithm 1

快速谷歌搜索会出现一个实现,但算法很简单,值得尝试自己编写代码。

1 (实际上,他们使用Tim sort,它是mergesort和插入排序之间的混合......)

答案 2 :(得分:0)

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