我正在尝试编写一个相当快速的快速排序,但这在许多其他应用程序中都有使用。
内置的 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