我左看看右看看。
「學姊,我學會了怎麼排出二元搜尋樹的方法,可是⋯⋯你還沒教我怎麼搜尋啊?」
「啊呀,玩得太開心,差點忘記重點了。」學姊吐了吐舌頭,露出有點調皮的笑容。
「搜尋的起點,當然是從 Root ,這個頂端開始。至於搜尋方法分兩大類。」她把手指指向紙牌屋底部。「第一種叫 Depth First Search,簡稱 DFS。」
「方法是不停往下走,直到無路可走,還是沒找到搜尋對象,就往回一層,往右一格再往下找。算是直線走法。」
「第二種方法叫一邊Breadth First Search,簡稱BFS。」她把手指指向紙牌屋上半部。「跟剛剛相反,橫著找,找完一層再往下一層找。」
「那哪個比較好用?」我有點疑惑?
「看你的目標在哪裡呀。」學姊聳肩。「你覺得比較會在底部就用 DFS ,覺得會在淺層就用 BFS 。所以迷宮探索會用 DFS ,畢竟通常終點離起點很遠。而 BFS 就是用來找捷徑、最短距離之類的。」
「有比較近嗎?如果目標在最右邊,不是也要橫著走很遠?」我提出疑惑。
「喔喔,忘了和你說明,同一層的距離都是一樣的,因為所謂的距離是和 Root 的距離,不是你走的距離。」學姊補充道。