私は A* アルゴリズムを使用しています。いくつかの障害物がある 2D グリッドがあり、開始位置と最終位置が与えられると、それらの間の最短経路を見つけます。
ここに私の疑似コードがあります
while(queueNotEmpty){
removeFromPQ;
if(removed == destination)
found;
insertAllNeighbours;
}
remove と insert は優先キュー (ヒープ) 上の関数であり、O(log(n)) 時間です。
グリッドの次元を N*N と考えます。実行時間の計算方法を教えてください。つまり、このループは何回実行されるのでしょうか? 何か対策はありますか?