ความแตกต่างระหว่าง BFS และ DFS ความแตกต่างระหว่าง
BFS กับ DFS
Breadth First Search (หรือที่เรียกว่า BFS) เป็นวิธีการค้นหาที่ใช้เพื่อขยายโหนดทั้งหมดของ a กราฟเฉพาะ มันสำเร็จงานนี้โดยการค้นหาทุกโซลูชันเดียวเพื่อตรวจสอบและขยายโหนดเหล่านี้ (หรือการรวมกันของลำดับในนั้น) ดังนั้น BFS จึงไม่ใช้อัลกอริธึม heuristic (หรืออัลกอริทึมที่ค้นหาโซลูชันผ่านหลาย ๆ สถานการณ์) หลังจากได้รับโหนดแล้วจะมีการเพิ่มคิวที่เรียกว่า First In, First Out คิว โหนดเหล่านั้นที่ยังไม่ได้สำรวจคือ "เก็บ" ในคอนเทนเนอร์ที่มีเครื่องหมาย 'เปิด' เมื่อสำรวจพวกเขาจะถูกส่งไปยังภาชนะที่มีเครื่องหมาย 'ปิด'
(หรือที่เรียกว่า DFS) คือวิธีการค้นหาที่เจาะลึกเข้าไปในโหนดย่อยของการค้นหาจนกว่าจะถึงเป้าหมาย (หรือจนกว่าจะมีโหนดใด ๆ โดยไม่มีการเรียงสับเปลี่ยนอื่น ๆ หรือ ' เด็ก) หลังจากพบเป้าหมายหนึ่งแล้วการค้นหากลับไปยังโหนดก่อนหน้าซึ่งใช้วิธีแก้ปัญหาแล้วทำซ้ำขั้นตอนจนกว่าจะค้นหาโหนดทั้งหมด ดังนั้นโหนดจึงยังคงถูกนำมาใช้เพื่อการสำรวจต่อไปซึ่งเรียกว่าการดำเนินการที่ไม่ใช่แบบทับซ้อนDFS เป็นผลผลิตที่เป็นธรรมชาติมากที่สุดโดยใช้ต้นไม้ทอดซึ่งเป็นต้นไม้ที่สร้างขึ้นจากจุดยอดทั้งหมดและขอบบางส่วนในกราฟที่ไม่ได้รับการชี้แนะ ในรูปแบบนี้กราฟจะแบ่งออกเป็นสามชั้น: ขอบไปข้างหน้าชี้จากโหนดไปยังโหนดลูก ขอบหลังชี้จากโหนดไปยังโหนดก่อนหน้า และข้ามขอบซึ่งไม่ได้ทำอย่างใดอย่างหนึ่งเหล่านี้
สรุป:1. BFS ค้นหาทุกๆโซลูชันเดียวในกราฟเพื่อขยายโหนด DFS โพรงลึกภายในโหนดลูกจนกว่าเป้าหมายจะถึง
2 คุณลักษณะของ BFS คือความซับซ้อนของพื้นที่และเวลาความสมบูรณ์หลักฐานของความสมบูรณ์และ optimality; ผลลัพธ์ที่เป็นธรรมชาติที่สุดสำหรับ DFS เป็นโครงแบบ spanning tree ที่มีสามคลาส: ขอบข้างขอบด้านหลังและขอบด้านข้าง