Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否考虑采用这种快速排序方法;“到位”吗;?_Python_Algorithm_Quicksort_In Place - Fatal编程技术网

Python 是否考虑采用这种快速排序方法;“到位”吗;?

Python 是否考虑采用这种快速排序方法;“到位”吗;?,python,algorithm,quicksort,in-place,Python,Algorithm,Quicksort,In Place,这是一个快速排序的实现,它比我发现的其他实现更容易理解。尽管如此,这个实现似乎并不像快速排序那样“到位”。我认为它没有“就位”,因为您正在返回一个新数组 我认为这项实施没有“到位”对吗 def快速排序(顺序): 长度=长度(序列) 如果长度轴: 项目\附加(项目) 其他: 项目\较低。追加(项目) 返回快速排序(项目较低)+[pivot]+快速排序(项目较大) 这是我发现的另一个实现,我认为它是快速排序的“就地”版本。-> 如果有人能证实这一点。我将非常感激。谢谢 它肯定是不到位的您正在生成新

这是一个快速排序的实现,它比我发现的其他实现更容易理解。尽管如此,这个实现似乎并不像快速排序那样“到位”。我认为它没有“就位”,因为您正在返回一个新数组

我认为这项实施没有“到位”对吗

def快速排序(顺序):
长度=长度(序列)
如果长度轴:
项目\附加(项目)
其他:
项目\较低。追加(项目)
返回快速排序(项目较低)+[pivot]+快速排序(项目较大)
这是我发现的另一个实现,我认为它是快速排序的“就地”版本。->


如果有人能证实这一点。我将非常感激。谢谢

它肯定是不到位的您正在生成新的数组(
项_lower
等)

不,它不是快速排序算法的“到位”实现


这种实现更容易掌握,但效率很低。请记住,对于您尝试排序的数组,它会创建一个相同大小的新数组,然后,对于其中的一半,它会创建另一个数组,然后对于另一半或另一个数组,依此类推。。。对于大型数组,您将浪费大量内存。

链接中的实现是否“到位”@crescendo01是的,是的。不是的,尽管它确实修改了您传入的列表。它还将扼杀运行时。@juanpa.arrivillaga您认为您可以在纯python中实现快速排序吗?如果是这样的话,我有一个你可能会感兴趣的几乎是新的桥…我相信你可以实现一个算法高效的快速排序。YesA就地排序提示-递归参数应该索引到列表中(告诉函数需要操作列表中的位置范围),并且您应该只修改列表,而不构建新列表。