คำถามติดแท็ก breadth-first-search

16
เมื่อใดจึงจะใช้การค้นหาความลึกครั้งแรก (DFS) กับการค้นหาความกว้างระดับแรก (BFS) [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการในวันที่ 13 ที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเข้าใจความแตกต่างระหว่าง DFS และ BFS แต่ฉันสนใจที่จะรู้ว่ามันใช้งานได้ดีกว่ากันหรือไม่? ใครช่วยยกตัวอย่างของวิธีการที่ DFS จะกล้าหาญ BFS และในทางกลับกัน?

4
ความกว้างแรกและความลึกก่อน
เมื่อทำการสำรวจต้นไม้ / กราฟความแตกต่างระหว่างความกว้างก่อนและระยะลึกก่อนคืออะไร ตัวอย่างการเข้ารหัสหรือรหัสเทียมใด ๆ จะดีมาก

21
แสดงการค้นหาแบบกว้างครั้งแรกแบบวนซ้ำ
สมมติว่าคุณต้องการที่จะดำเนินการค้นหาในแนวกว้างของต้นไม้ไบนารีซ้ำ คุณจะไปเกี่ยวกับมันได้อย่างไร เป็นไปได้หรือไม่ที่ใช้ call-stack เท่านั้นเป็นที่เก็บข้อมูลสำรอง?

8
เหตุใดความซับซ้อนของเวลาของทั้ง DFS และ BFS O (V + E)
อัลกอริทึมพื้นฐานสำหรับ BFS: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex ดังนั้นฉันคิดว่าความซับซ้อนของเวลาจะเป็น: v1 + (incident edges) + v2 + (incident edges) + .... + vn + (incident edges) vจุดยอด1ถึงอยู่ที่ไหนn ประการแรกสิ่งที่ฉันพูดถูกต้องหรือไม่? ประการที่สองสิ่งนี้เป็นอย่างไรO(N …

7
Breadth-First Search ทำงานอย่างไรเมื่อมองหา Shortest Path
ฉันได้ทำการค้นคว้าและดูเหมือนว่าฉันจะขาดส่วนเล็ก ๆ ส่วนหนึ่งของอัลกอริทึมนี้ ฉันเข้าใจวิธีการทำงานของการค้นหาแบบกว้าง - แรก แต่ฉันไม่เข้าใจว่ามันจะพาฉันไปยังเส้นทางที่เจาะจงได้อย่างไรแทนที่จะบอกเพียงว่าแต่ละโหนดไปที่ใดได้ ฉันเดาว่าวิธีที่ง่ายที่สุดในการอธิบายความสับสนของฉันคือการให้ตัวอย่าง: ตัวอย่างเช่นสมมติว่าฉันมีกราฟดังนี้: และเป้าหมายของฉันคือการได้รับจาก A ถึง E (ขอบทั้งหมดไม่ได้ถ่วงน้ำหนัก) ฉันเริ่มต้นที่ A เพราะนั่นคือจุดกำเนิดของฉัน ฉันจัดคิว A ตามด้วยการออกคิว A ทันทีและสำรวจมัน สิ่งนี้ให้ผล B และ D เนื่องจาก A เชื่อมต่อกับ B และ D ฉันจึงจัดคิวทั้ง B และ D ฉันเลิกจัดคิว B และสำรวจมันและพบว่ามันนำไปสู่ ​​A (สำรวจแล้ว) และ C ดังนั้นฉันจึงจัดคิว C ฉันจึงออกคิว D และพบว่ามันนำไปสู่ ​​E เป้าหมายของฉัน …

4
เหตุใดจึงต้องใช้ Algorithm ของ Dijkstra หาก Breadth First Search (BFS) สามารถทำสิ่งเดียวกันได้เร็วขึ้น
สามารถใช้ทั้งสองเพื่อค้นหาเส้นทางที่สั้นที่สุดจากแหล่งเดียว BFS ทำงานในO(E+V)ขณะที่ Dijkstra วิ่งเข้าO((V+E)*log(V))มา นอกจากนี้ฉันเคยเห็น Dijkstra ใช้หลายอย่างเช่นในโปรโตคอลการกำหนดเส้นทาง เหตุใดจึงต้องใช้อัลกอริทึมของ Dijkstra หาก BFS สามารถทำสิ่งเดียวกันได้เร็วกว่า

5
จะติดตามเส้นทางในการค้นหาแบบกว้าง - แรกได้อย่างไร?
คุณติดตามเส้นทางของ Breadth-First Search ได้อย่างไรในตัวอย่างต่อไปนี้: หากค้นหาคีย์11ให้ส่งคืนรายการที่สั้นที่สุดที่เชื่อมต่อ 1 ถึง 11 [1, 4, 7, 11]

9
ทำไม DFS และไม่ใช่ BFS ในการค้นหาวัฏจักรในกราฟ
DFS ส่วนใหญ่ใช้เพื่อค้นหาวัฏจักรในกราฟไม่ใช่ BFS เหตุผลใด? ทั้งสองสามารถค้นหาได้ว่ามีการเยี่ยมชมโหนดแล้วหรือไม่ในขณะที่ข้ามต้นไม้ / กราฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.