作为一项智力挑战,我正在努力做标题中描述的内容。我被困住了,想知道是否有人有任何帮助想法......?
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()
答案 0 :(得分:3)
有许多排序算法,例如bubble
,quick 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