Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

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
Arrays 当保证分区后存在常量差异时,快速排序的最坏运行时_Arrays_Algorithm_Sorting_Quicksort - Fatal编程技术网

Arrays 当保证分区后存在常量差异时,快速排序的最坏运行时

Arrays 当保证分区后存在常量差异时,快速排序的最坏运行时,arrays,algorithm,sorting,quicksort,Arrays,Algorithm,Sorting,Quicksort,我们希望使用标准的快速排序进行排序,并且我们可以保证,在调用分区方法之后,两个部分的大小差异最多是一个常数因子a。此算法的最坏运行时间是什么?由于分区之间的大小差异有限,快速排序是最坏情况O(n log(n)) 基本上,每次进行拆分时,快速排序都会遍历整个数组。因此,我们只需要考虑最坏情况的划分,需要多少分裂才能将其降到1(或2)。 现在,如果我们保证两部分中较大的部分最多是另一部分的一倍,那么最坏的情况是,较大的部分实际上总是一倍大 在这种情况下,快速排序中的“层”数量将等于我们必须将数组的原

我们希望使用标准的快速排序进行排序,并且我们可以保证,在调用分区方法之后,两个部分的大小差异最多是一个常数因子a。此算法的最坏运行时间是什么?

由于分区之间的大小差异有限,快速排序是最坏情况O(n log(n)) 基本上,每次进行拆分时,快速排序都会遍历整个数组。因此,我们只需要考虑最坏情况的划分,需要多少分裂才能将其降到1(或2)。 现在,如果我们保证两部分中较大的部分最多是另一部分的一倍,那么最坏的情况是,较大的部分实际上总是一倍大

在这种情况下,快速排序中的“层”数量将等于我们必须将数组的原始大小除以(1+a)/a才能得到1的次数。这等于输入大小以(1+a)/a为底的对数。因为a是常数,(1+a)/a也是常数,因此拆分的数量是O(log(n)),这意味着算法在O(n log(n))最坏情况下运行。

分区之间的大小差异有限,快速排序是最坏情况O(n log(n)) 基本上,每次进行拆分时,快速排序都会遍历整个数组。因此,我们只需要考虑最坏情况的划分,需要多少分裂才能将其降到1(或2)。 现在,如果我们保证两部分中较大的部分最多是另一部分的一倍,那么最坏的情况是,较大的部分实际上总是一倍大

在这种情况下,快速排序中的“层”数量将等于我们必须将数组的原始大小除以(1+a)/a才能得到1的次数。这等于输入大小以(1+a)/a为底的对数。因为a是常数,(1+a)/a也是常数,因此拆分的数量是O(log(n)),这意味着算法在O(n log(n))最坏情况下运行