Improved Selection on Totally Monotone Arrays

This paper's main result is an O((√m lg m)(n lg n)+m lg n)-time algorithm for computing the kth smallest entry in each row of an m×n totally monotone array. (A two-dimensional array A = {a[i,j]} is totally monotone if for all i1<i2 and j1<j2, a[i1,j1]<a[i1,j2] implies a[i2,j1<a[i2,j2.) For large values of k (in particular, for k=[n/2]), this algorithm is significantly faster than the O(k(m+n))-time algorithm for the same problem due to Kravets and Park (1991). An immediate consequence of this result is an O(n3/2 lg2n)-time algorithm for computing the kth nearest neighbor of each vertex of a convex n-gon. In addition to the main result, we also give an O(n lg m)-time algorithm for computing an approximate median in each row of an m×n totally monotone array; this approximate median is an entry whose rank in its row lies between [n/4] and [3n/4].

[1]  Manuel Blum,et al.  Time Bounds for Selection , 1973, J. Comput. Syst. Sci..

[2]  Alok Aggarwal,et al.  Geometric applications of a matrix-searching algorithm , 1987, SCG '86.

[3]  Alok Aggarwal,et al.  Notes on searching in multidimensional monotone arrays , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[4]  Robert E. Wilber The Concave Least-Weight Subsequence Problem Revisited , 1988, J. Algorithms.

[5]  Mikhail J. Atallah,et al.  Constructing trees in parallel , 1989, SPAA '89.

[6]  Alok Aggarwal,et al.  Sequential Searching in Multidimensional Monotone Arrays , 1989 .

[7]  M. Klawe A Simple Linear Time Algorithm for Concave One-Dimensional Dynamic Programming , 1989 .

[8]  Mikhail J. Atallah A Faster Parallel Algorithm for a Matrix Searching Problem , 1990, SWAT.

[9]  Zvi Galil,et al.  A Linear-Time Algorithm for Concave One-Dimensional Dynamic Programming , 1990, Inf. Process. Lett..

[10]  David Eppstein,et al.  Sequence Comparison with Mixed Convex and Concave Costs , 1990, J. Algorithms.

[11]  Alok Aggarwal,et al.  Parallel searching in generalized Monge arrays with applications , 1990, SPAA '90.

[12]  Mikhail J. Atallah,et al.  Efficient Parallel Algorithms for String Editing and Related Problems , 1990, SIAM J. Comput..

[13]  Daniel J. Kleitman,et al.  An Almost Linear Time Algorithm for Generalized Matrix Searching , 1990, SIAM J. Discret. Math..

[14]  Baruch Schieber,et al.  On-line dynamic programming with applications to the prediction of RNA secondary structure , 1991, SODA '90.

[15]  Dina Kravets,et al.  Selection and sorting in totally monotone arrays , 1990, SODA '90.

[16]  Mikhail J. Atallah,et al.  An efficient parallel algorithm for the row minima of a totally monotone matrix , 1991, SODA '91.