Блог пользователя MODDI

Автор MODDI, история, 4 года назад, По-английски

We have an N*N matrix, can we achieve better than transposing the matrix into an array, and then sorting it?

I did some online searching and found that quickselect eliminates the log factor, how can we extend quickselect to 2 dimensions?

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
4 года назад, скрыть # |
← Rev. 3  
Проголосовать: нравится +38 Проголосовать: не нравится

Convert the matrix to an array first, then use nth_element(x,x+n/2,x+n). The overall complexity is the same as the input complexity, which has reached the lower bound.

nth_element is $$$\Theta(n)$$$.

»
4 года назад, скрыть # |
 
Проголосовать: нравится -21 Проголосовать: не нравится

Just use the Thanos algorithm: among $$$n^2$$$ elements of the matrix, select random $$$n$$$ and find their median with nth_element ;-)

»
4 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by MODDI (previous revision, new revision, compare).