Если ваш массив не квадратный, ваше решение на самом деле O(I * J)
, а не O( n^2 )
. Строго говоря, у вас есть только N
элементов в вашем 2d массиве, таким образом, это решение O(N)
. Единственный способ, которым это могло бы быть O( n^2 )
, - это если бы массив был квадратным, таким образом I = J = N
.
Поскольку сравнение равно <=
, а не <
, вам все равно необходимо проверить следующий элемент, и любые ярлыки, которые вы пытаетесь использовать, скорее всего, зависят от процессора.
В худшем случае весь массив является локальным максимумом, потому что
весь массив равен одному значению.
Таким образом, вы должны посетить каждый элемент один раз, делая его O(N)
Чтобы повысить производительность в этом мире, вам нужно использовать указатели для доступа к массиву, так как в большинстве языков 2d-массивы работают значительно хуже, чем 1d-массивы.