只是学习了Python,然后开始学习排序列表。显示了两种类型的算法:插入和选择。所以,我有了一个想法,创造了这个:
def DiffSort(lst):
lstDiff = [None] * len(lst)
i = 0
while i < len(lst):
lstDiff[i] = lst[i] - lst[i-1] if i != 0 else lst[0]
if lstDiff[i] < 0:
sbj, tmp = lst[i], lstDiff[i]
while tmp < 0:
i -= 1
tmp += lstDiff[i]
lst[i+1] = lst[i]
lst[i] = sbj
else:
i += 1
lst = [13,25,18,122,32,1,0.78,25,85,1,32,56,0.55,0.6,17]
print(lst)
DiffSort(lst)
print(lst)
有什么好消息吗?已经有类似的方法了吗?在
list.sort()
如果要对列表进行适当排序。在sorted(list)
如果要返回列表的排序副本。在第二个选项适用于任何iterable类型,而第一个选项是list exclusive(尽管其他一些类型可能也定义了相同或相似的函数,但您通常不希望如此)。在
由于您似乎关心其中的算法部分,因此您可能会感兴趣: http://svn.python.org/projects/python/trunk/Objects/listsort.txt
不是吗第一排序()够好了吗?它肯定比必须在O(n^2)时间内运行的Python解决方案快得多。在
相关问题 更多 >
编程相关推荐