У меня есть задание написать алгоритм (не на каком-то конкретном языке, просто псевдокод), который получает матрицу [размер: M x N], которая сортируется таким образом, что все его строки и все столбцы сортируются индивидуально, и находит определенное значение в этой матрице. Мне нужно написать наиболее эффективный по времени алгоритм, который я могу придумать.
Матрица выглядит примерно так:
1 3 5
4 6 8
7 9 10
Моя идея - начать с первой строки и последнего столбца и просто проверить значение, если оно больше, спуститься вниз и если это ' s меньше, чем идти влево, и продолжайте делать это до тех пор, пока значение не будет найдено или пока индексы не выйдут за границы (в случае, если значение не существует). Этот алгоритм работает с линейной сложностью O (m + n). Мне сказали, что это можно сделать с логарифмической сложностью. Является ли это возможным? и если да, то как?