Поиск непустой ячейки сетки в 2-х мерном массиве

У меня есть 2-х мерный целочисленный массив (допустим, 1000 на 1000), назовем его матрицей. Каждая ячейка этой матрицы имеет координаты X и Y (каждая от 0 до 999 в данном примере). Изначально все ячейки сетки имеют значение 0, во время выполнения программы часть ячеек матрицы задается другим значением <> 0.

Теперь мне нужна быстрая функция (алгоритм), которая принимает некоторые значения X и Y и возвращает значение матрицы в этих координатах. Однако, если матрица в указанной точке X/Y имеет значение 0, то алгоритм должен определить ненулевое значение внутри матрицы, максимально близкое к исходной точке X/Y.

Я думал о петлях вокруг исходной позиции X/Y с возрастающим смещением при каждом цикле петли, но я не уверен, действительно ли это самый быстрый алгоритм...

Есть какие-нибудь идеи? Я бы предпочел Java-код, но любой псевдокод тоже подойдет :)

Заранее спасибо за помощь! Добрый вечер, Matthias

5
задан Matthias 8 September 2011 в 15:52
поделиться