我正在为Codility做准备。我需要找出找到具有大值和多个条目的数组的最快方法是什么?
内置python排序是最快还是我需要实现其他排序方法?
答案 0 :(得分:10)
如果您的数据已经在Python中,那么Python的sort可能是最快的方式。它使用Timsort algorithm,它在随机数据上表现良好,在部分有序数据上表现良好。
如果您只需要最大的项目,请使用heapq.nlargest。
答案 1 :(得分:2)
我从codility.com求职面试网站得到的印象是,快速提供的正确解决方案比难以调试(但可能更高效)的解决方案更重要。在那种环境中,使用Python的内置排序,Timsort,它在大数字排序大数组方面相当有效,是稳定的,并且可以进行排序。
答案 2 :(得分:0)
使用
list.sort()
是最简单的排序列表的方法,如果你不介意丢失原始列表,你应该使用这种方法。
使用
sorted()
将返回一个新列表,使其效率低于list.sort()
,但如果您需要保留原始列表,则可以使用此列表。