2

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

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

3 回答 3

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

希望有所帮助!

于 2013-08-11T03:24:11.520 回答
1

大多数python 实现使用mergesort算法1

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

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

于 2013-08-11T03:23:30.457 回答
0
def sort(L):
    newlist = []
    for x in range(len(L)):
            newlist.append(min(L))
            L.remove(newlist[x])
    return newlist
于 2013-08-11T09:44:31.370 回答