Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting_Quicksort - Fatal编程技术网

Algorithm 随机快速排序划分概率

Algorithm 随机快速排序划分概率,algorithm,sorting,quicksort,Algorithm,Sorting,Quicksort,我正在阅读,问题5.2说明: 设α为常数,与输入数组长度n无关, 严格介于0和1/2之间。如果有一个 随机选择的pivot元素,分区子例程生成 两个结果子问题的大小至少为 ⑩乘以原始数组的大小 答案如下: ɑ 1 - ɑ 1 - 2ɑ 2 - 2ɑ 我不知道如何回答这个问题。有什么想法吗?让数组中有N个元素。如果拾取的轴是数组中最小的[Nα]元素之一,则左侧分区的大小将小于Nα。类似地,如果拾取的轴是数组中最大的[Nα]元素之一,则右侧分区的大小将小于Nα 因此,您可以选择N-2*[Nα]元素,

我正在阅读,问题5.2说明:

设α为常数,与输入数组长度n无关, 严格介于0和1/2之间。如果有一个 随机选择的pivot元素,分区子例程生成 两个结果子问题的大小至少为 ⑩乘以原始数组的大小

答案如下:

ɑ 1 - ɑ 1 - 2ɑ 2 - 2ɑ 我不知道如何回答这个问题。有什么想法吗?

让数组中有N个元素。如果拾取的轴是数组中最小的[Nα]元素之一,则左侧分区的大小将小于Nα。类似地,如果拾取的轴是数组中最大的[Nα]元素之一,则右侧分区的大小将小于Nα

因此,您可以选择N-2*[Nα]元素,以便两个分区的大小都大于或等于Nα。由于算法随机选取一个轴,所有元素被选取的概率相等


因此,得到这种分割的概率是1-2α+O1/N。

选择一个最小的Nα元素,你的意思是选择该元素作为轴心吗?由于α不是整数,Nα可以是分数。你能从数组中选取最小的3.5个元素吗?请在回答中详细说明,不要在评论中回复。@AbhijitSarkar您可以截断分数。差别可以忽略不计。我用同样的方法更新了答案。我想你的意思是概率是1-2α。你的答案1-2α+O1/N不是其中一个选项,也不符合你的论点。N-2*Na/N=1-2a@AbhijitSarkar这就是我所说的微不足道。由于无法拾取3.5个元素,因此N上的某些小数部分将被保留。