八數碼轉換問題……
經典bfs……
關鍵問題:
1.狀態(tài)的保存(見longwuxu該題解題報告中的全排列Hash表示)
2.bfs中標記數組的處理:
bfs中有兩個標記數組,一個是標記隊列中節(jié)點的標記數組isadd[],另一個是標記已訪問節(jié)
點標記數組isvis[]。前者在入隊列的時候進行標記,而后者則要在出隊列的時候才進行標記
用isadd標記的時候隊列中不會出現重復的節(jié)點,而用isvis標記的時候隊列中會出現重復的
節(jié)點。所以前者要比后者的效率高,所占用的空間也要少……一般采用isadd[]數組標記較優(yōu)
更多建議: