Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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
Algorithm 递归调用中具有变化的快速排序_Algorithm_Recursion_Iteration_Quicksort - Fatal编程技术网

Algorithm 递归调用中具有变化的快速排序

Algorithm 递归调用中具有变化的快速排序,algorithm,recursion,iteration,quicksort,Algorithm,Recursion,Iteration,Quicksort,我尝试了quicksort的实现,但有一个小小的变化,如下所示:quicksort的通常实现会进行两次递归调用。为了优化堆栈空间,它像往常一样在较小的子阵列上递归,每当需要在较大的子阵列上递归时,它都使用迭代模块。因此,对于快速排序的这种变化,与通常的快速排序实现相比,递归的深度是多少?在这种情况下,堆栈空间复杂度是O(log2(n))(我包括了2,即使它是常数) 注意:此方法与quicksort的原始实现非常相似,quicksort最初是在没有本机堆栈的机器上实现的。操作顺序仍然相同,先处理较

我尝试了quicksort的实现,但有一个小小的变化,如下所示:quicksort的通常实现会进行两次递归调用。为了优化堆栈空间,它像往常一样在较小的子阵列上递归,每当需要在较大的子阵列上递归时,它都使用迭代模块。因此,对于快速排序的这种变化,与通常的快速排序实现相比,递归的深度是多少?

在这种情况下,堆栈空间复杂度是O(log2(n))(我包括了2,即使它是常数)

注意:此方法与quicksort的原始实现非常相似,quicksort最初是在没有本机堆栈的机器上实现的。操作顺序仍然相同,先处理较小的子分区,然后再处理较大的子分区,但是当使用编程堆栈时,较大子分区的索引(或指针)被推送到堆栈上,以便稍后排序,并且代码循环回去对较小的子分区进行排序