当前位置: 首页 > 面试题库 >

python的sorted()使用什么算法?

归泽宇
2023-03-14
问题内容

我试图向某人解释为什么他们应该使用Python的内置sorted()函数而不是滚动自己的函数,但我意识到我不知道它使用什么算法。

如果重要的话,我们说的是python 2.7


问题答案:

Python使用一种称为Timsort的算法:

Timsort是一种混合排序算法,是从合并排序和插入排序派生而来的,旨在对多种现实数据表现良好。它是由Tim
Peters在2002年发明的,用于Python编程语言。该算法查找已排序的数据子集,并使用这些子集更有效地对数据进行排序。这是通过合并一个已标识的子集(称为运行)和现有运行来完成的,直到满足某些条件为止。自2.3版以来,Timsort一直是Python的标准排序算法。现在,它还可用于在Java
SE 7和Android平台上对数组进行排序。



 类似资料:
  • 问题内容: 我正在浏览文档,并遇到了以下示例: 我不明白的是这里的lambda和学生是什么?可以用其他任何名称代替它们吗?和什么做的?这有点模棱两可,因为我以前从未遇到过。 问题答案: 从语义上说: 与此相同: 只是为函数定义提供了另一种语法。结果是一个函数对象,就像由创建的对象一样。但是,有些功能是功能无法完成的,例如定义新变量。它们非常适合(取决于您要问的人)创建较小的一次性功能,例如此功能。

  • 问题内容: 对列表进行排序并保存排序后的列表,同时返回列表的排序后的副本,而不更改原始列表。 但是什么时候使用哪个呢? 哪个更快?又快多少? 之后可以检索列表的原始位置吗? 问题答案: 返回一个新的排序列表,而原始列表不受影响。就地对列表进行排序,使列表索引突变,然后返回None(就像所有就地操作一样)。 适用于任何可迭代的对象,而不仅仅是列表。字符串,元组,字典(你将获得键),生成器等,返回包含

  • 本文向大家介绍python的sorted用法详解,包括了python的sorted用法详解的使用技巧和注意事项,需要的朋友参考一下 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。 排序,数字、字符串按照ASCII,中文按照unicode从小到大排序   如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢?   注意:y

  • 我有一个数组。我想对它们进行排序并删除重复项。这个答案建议使用和进行这种操作。运算的顺序不应该改变结果,所以我测量了计算的时间。 是什么使一个比另一个快?还有,有没有更快的办法呢?

  • 问题内容: 香港专业教育学院一直想知道这一点,但从来没有机会对其进行研究。 SQL中使用哪种算法?自然地,您搜索并比较基本语句,什么搜索算法?排序?以及其他功能(例如Join的功能等)。 我知道对这些问题没有明确的答案,但其想法是收集有关SQL使用哪种方法执行其工作的一般想法。 问题答案: 我建议您得到Delaney,Randal,Tripp等的副本。