, http://www.careercup.com/question?id=7457663.
k 0, k- , setA + setB?, . O(n log(n)) , O(n), , O(k log(k)) . , k n*n - n.
k n*n/2, . http://en.wikipedia.org/wiki/Quickselect . O(n log(n)) . O(n) , . pivots O(log(n)). (, log(n*n) = O(log(n)).) , , O(log(n)) O(n log(n)) .
O(n log(n) log(n)).
: , . , .
, .
ArrayRangeWithAddend. , . array ( , ), a start end , a shiftValue , .
. size. partition(n) , n, , n, , n. value(i), i 'th .
ArrayRangeCollection. ArrayRangeWithAddend. , random partition(n) ArrayRangeCollection, n, , n, ArrayRangeCollection , n. partition ArrayRangeWithAddend 0.
ArrayRangeCollection, , . random partition , , .