【发布时间】:2013-09-07 10:39:22
【问题描述】:
我正在尝试编写一个相当快的快速排序,但这在许多其他应用程序中都有使用。
内置的 filter(function, iterable) 函数返回可迭代项的列表,当传递给函数时返回 true,并且当您只需要检查一个条件时,它比传统的 for 循环快得多列表。
我正在寻找的是一个非常快的函数(如过滤器),它不仅会构造一个新列表,还会从旧列表中删除它所获取的项目。在单轴快速排序的应用中,这将允许删除过滤器语句,并且分区例程的速度可能接近 2 倍。
python有内置这样的功能吗? numpy 呢?如果没有,最快的实现方法是什么?
作为参考,这里是当前的分区代码:
def partition(u):
lesser = singleQuicksort(filter(lambda num: num <= u[0], u[1:]))
greater = singleQuicksort(filter(lambda num: num > u[0], u[1:]))
return lesser, greater
【问题讨论】:
标签: python performance optimization numpy