Presentation is loading. Please wait.

Presentation is loading. Please wait.

Selection in Column Monotone Matrices, X + Y and Heaps

Similar presentations


Presentation on theme: "Selection in Column Monotone Matrices, X + Y and Heaps"— Presentation transcript:

1 Selection in Column Monotone Matrices, X + Y and Heaps
[G.N. Frederickson, D.B. Johnson, The Complexity of Selection and Ranking in X+Y and Matrices with Sorted Columns, Journal of Computer and System Sciences 24(2): , 1982] [G.N. Frederickson, An Optimal Algorithm for Selection in a Min-Heap, Inf. Comput. 104(2): , 1993] 1 2 3 ∙∙∙ m 4 5 6 7 8 10 12 13 14 9 11 15 n 1 2 3 ∙∙∙ m 7 10 5 4 8 11 6 9 12 13 17 14 19 15 n 24 31 16 23 4 1 3 7 6 9 5 8 14 21 11 12 10 42 13 Column monotone X + Y Heap = Select(7)

2 <p >p Partition (I1,i,I2) Select(k) Weighted-Select(k)
3 4 5 6 7 8 9 10 xi 15 33 42 17 11 jI1 : xj  xi  jI2 : xi  xj Select(k)  find partition with |I1|+1 = k Select(6) [M. Blum, R.W. Floyd, V. Pratt, R. Rivest and R. Tarjan, Time bounds for selection, J. Comp. Syst. Sci. 7 (1973) ] 1 2 ... 4 3 6 9 p 8 11 7 10 12 <p >p T(n) = n + T(n/5) + T(7n/10) = O(n) Weighted-Select(k) i 1 2 3 4 5 6 7 8 9 10 xi 15 33 42 17 11 wi Find partition with k - wi  ΣjI1 wj < k Weighted-Select(18) Algorithm : Binary search using Select Time : O(n + n/2 + n/4 + ∙∙∙ ) = O(n)

3 Selection in Column Monotone Matrices
k m k/2 k m k m k Select k ... k∙log k Select k/2 1 2 k k k k n n n n x weight(x) (permute columns) (log k iterations) X 3 Result so far... Identified O(k) elements in prefixes of p = min{m,k} columns Time so far... k < m : O(m+k+k/2+k/4+∙∙∙+1) = O(m) m  k : O(m+m/2+m/4+∙∙∙+1) = O(m) Weighted-Select(k) on k+k/2+k/4+∙∙∙+1= O(k) elements 2k candidates left

4 Total time O(m+p∙log(k/p)), p = min { k, m}
Selection in Column Monotone Matrices Select(k,N,p) assume k  N/2 (N = total length of the p lists)  2N  0.086∙N Elliminate  = 1- 1/2 ∙length  x x  x recurse (1-)2N = N/2 i.e. k’th smallest not elliminated N (1-)N Weighted-Select(N) Weight of element = length of list Result so far... Identified O(k) elements in prefixes of p = min{m,k} columns Time so far... k < m : O(m+k+k/2+k/4+∙∙∙+1) = O(m) m  k : O(m+m/2+m/4+∙∙∙+1) = O(m) N = O(p)  Select(k) k < N/2  symmetric with reverse order T(N) = p + T( (1-2) ∙N) = O(p∙log (N/p)) Total time O(m+p∙log(k/p)), p = min { k, m} k = O(m) : O(m) k = (m) : O(m∙log(k/m))

5 Time n+n/2+n/4+∙∙∙+1 = O(n)
Selection in X + Y ̶ reuse column monotone algorithm ? n  m m k m k/2 k m k m k Select k ... k∙log k Select k/2 1 2 k k k k n n n n x weight(x) (permute columns) (log k iterations) X works Time O(m) X X1 X2 X3 21 3 22 < < < < < < 23 Weighted-Select(k) on k+k/2+k/4+∙∙∙+1= O(k) elements 2k candidates left Semi-sorting 2-powers Time n+n/2+n/4+∙∙∙+1 = O(n)

6 Total time O(m+p∙log(k/p)), p = min { k, m}
Selection in X + Y ̶ reuse column monotone algorithm ? Select(k,N,p) assume k  N/2 (N = total length of the p lists)  = 1/4 Total time O(m+p∙log(k/p)), p = min { k, m} k = O(m) : O(m) k = (m) : O(m+k∙log(k/m)) ∙length (the same) X X1 X2 X3 X1 X2 X3 21 < < < < < < 22 Each iteration refine semi-sorting O(n) per level Can approximate sample by a close enough semi-sorted element 23 Semi-sorting 2-powers Time n+n/2+n/4+∙∙∙+1 = O(n)

7 [F93] considers additionally...
How to compute rank(x) in column monotone and X+Y matrices in O(m+p∙log(k/p)), p = min {k, m} Proves that the bounds are optimal Ranking in column sorted = exponential search in each column Ranking in X+Y = maintain semi-sorted set, and refine all intervals for each iteration; at end do brute-force seearch in each interval.

8 Selection in a Binary Heap
4 1 3 7 6 9 5 8 14 21 11 12 10 42 13 [G.N. Frederickson, An Optimal Algorithm for Selection in a Min-Heap, Inf. Comput. 104(2): , 1993] front k x DeleteMin  O(k∙log n) k x DeleteMin front  O(k∙log k) k∙log k  k∙loglog k  k∙logloglog k  k∙3log* k  k∙2log* k  k k smallest in sorted order  Ω(k∙log k) lower bound front = priority queue of size  k+1 orange = clan blue = max in clan = representative red line = offsprings = pour clan green = minimum in pour clan


Download ppt "Selection in Column Monotone Matrices, X + Y and Heaps"

Similar presentations


Ads by Google