线性时间选择这里有一个看不懂啊,能不能解释一下
给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素
将n个输入元素划分成n/5个组,每组5个元素,只可能有一个组不是5个元素。用任意一种排序算法,将每组中的元素排好序,并取出每组的中位数,共n/5个。
递归调用select来找出这n/5个元素的中位数。如果n/5是偶数,就找它的2个中位数中较大的一个。以这个元素作为划分基准
设所有元素互不相同。在这种情况下,找出的基准x至少比3(n-5)/10个元素大,因为在每一组中有2个元素小于本组的中位数,而n/5个中位数中又有(n-5)/10个小于基准x。同理,基准x也至少比3(n-5)/10个元素小。而当n≥50时,3(n-5)/10≥n/4所以按此基准划分所得的2个子数组的长度都至少缩短1/4。
下面那个红色部分怎么理解啊,为啥要除以先减去5,为啥要除以10,还有3(n-5)/10,(n-5)/10是什么意思