2000 x 2000 の 2D bool 配列を考えてみましょう。100,000 個の要素が true に設定され、残りは false に設定されます。
セル (x1,y1) が与えられた場合、最も近いセル (x2,y2) (マンハッタン距離: abs(x1-x2) + abs(y1-y2)) で false を見つける必要があります。
それを行う1つの方法は次のとおりです。
for (int dist = 0; true; dist++)
for ((x2,y2) in all cells dist away from (x1,y1))
if (!array[x2,y2])
return (x2,y2);
最悪の場合、空いているセルを見つける前に 100,000 個のセルを反復処理する必要があります。
この検索をより迅速に実行できるようにするために、2D 配列ではなく使用できるデータ構造はありますか?