刚刚学习Python并开始分类列表的主题。显示了两种类型的算法:插入和选择。所以,我有一个想法,并创造了这个: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'有一个'排序()'方法。(HTTP://文档。 python.org/2/tutorial/datastructures.html#more-on-lists) – Johnsyweb 2013-02-24 22:37:41
聪明,但我认为这只是插入排序,其缺点是它不会对任意可比较的东西(例如字符串,元组等) 。所以它不会超出[timsort](http://en.wikipedia.org/wiki/Timsort),对不起:) – Eevee 2013-02-24 22:43:43
您是否正在寻找通常在Python中对列表进行排序的最佳方式,或者您是否对排序算法的理论? – Junuxx 2013-02-24 22:44:51