【发布时间】:2012-08-11 11:05:03
【问题描述】:
如果我有一个每次长度都不同的列表,并且我想将它从最低到最高排序,我会怎么做?
如果我有:[-5, -23, 5, 0, 23, -6, 23, 67]
我要:[-23, -6, -5, 0, 5, 23, 23, 67]
我从这个开始:
data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []
minimum = data_list[0] # arbitrary number in list
for x in data_list:
if x < minimum:
minimum = value
new_list.append(i)
但这只经历了一次,我得到:
new_list = [-23]
这就是我卡住的地方。
如何在不使用内置最大、最小、排序函数的情况下继续循环直到 len(new_list) = len(data_list)(即所有数字都在新列表中)对所有内容进行排序?我也不确定是否有必要创建一个新列表。
【问题讨论】:
-
我很好奇您的限制 - 为什么?此外,因此有些相关 - 这是家庭作业吗?
-
是的,这是一个有趣的课程。我知道我可以使用排序功能来做到这一点,但我希望以另一种方式做到这一点。
-
排序的方法有很多,但只有少数几种是远程高效的,即使使用好的算法也会比内置排序慢 100 倍
-
我不认为这个练习的目的是为了提高效率,而是为了学习痛苦/漫长的道路。
-
您正在使用一些似乎没有在任何地方定义的变量(
i和value)。我在答案中更改了它们