我正在阅读Algorithms Illuminated: Part 1,问题5.2指出:
让ɑ是一些常数,与输入数组长度n无关, 严格在0到1/2之间。与 随机选择的枢轴元素,Partition子例程会产生一个 两个结果子问题的大小至少为 ɑ倍于原始数组的大小?
答案选择是:
- ɑ
- 1-ɑ
- 1-2ɑ
- 2-2ɑ
我不确定如何回答这个问题。有什么想法吗?
答案 0 :(得分:1)
让数组中有 $data = DB::table('vehicles')
->select('bookings.*', 'vehicles.*')
->Join('bookings', function($query) use ($date) {
$query
->on ('bookings.vehicle_id', '!=', 'vehicles.id')
->where('eventDate', '=', $date);
})
->get();
个元素。如果选取的枢轴是数组中最小的N
元素之一,则左分区的大小将小于[Nα]
。同样,如果选取的枢轴是数组中最大的Nα
元素之一,则右分区的大小将小于[Nα]
。
因此,您可以选择Nα
个元素,以使两个分区的大小都大于或等于N - 2 * [Nα]
。由于该算法随机选择枢轴,因此所有元素被拾取的可能性均等。
因此,发生这种分裂的可能性为Nα
。