BFS กับ DFS

ผู้เขียน: Laura McKinney
วันที่สร้าง: 4 เมษายน 2021
วันที่อัปเดต: 6 พฤษภาคม 2024
Anonim
Depth First & Breadth First Graph Search - DFS & BFS Graph Searching Algorithms
วิดีโอ: Depth First & Breadth First Graph Search - DFS & BFS Graph Searching Algorithms

เนื้อหา

ความแตกต่างระหว่าง BFS นั่นคือการค้นหาความกว้างแรกและ DFS นั่นคือการค้นหาความลึกแรกคือการค้นหาความกว้างแรกคือวิธีการสำรวจด้วยกราฟที่ใช้คิวในการจัดเก็บจุดยอดเยี่ยมขณะที่การค้นหาความลึกแรกคือวิธีการสำรวจกราฟ สำหรับการจัดเก็บจุดยอดเยี่ยม


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

การค้นหาความลึกครั้งแรกที่รู้จักกันในชื่อ DFS เป็นวิธีการสำรวจด้วยกราฟที่ใช้สแต็กเพื่อจัดเก็บจุดยอด การค้นหาแบบกว้างแรกไม่ใช่วิธีการตามขอบในขณะที่การค้นหาความลึกแรกคือวิธีการตามขอบ การค้นหาความลึกครั้งแรกทำงานในลักษณะวนซ้ำที่สำรวจจุดยอดผ่านขอบ ในการค้นหาเชิงลึกครั้งแรกแต่ละจุดจะถูกเยี่ยมชมหนึ่งครั้งที่ตรวจสอบสองครั้ง


สารบัญ: ความแตกต่างระหว่าง BFS และ DFS

  • แผนภูมิเปรียบเทียบ
  • BFS
  • DFS
  • ความแตกต่างที่สำคัญ
  • ข้อสรุป
  • วิดีโออธิบาย

แผนภูมิเปรียบเทียบ

รากฐานBFSDFS
ความหมายการค้นหาแบบกว้างครั้งแรกคือวิธีการสำรวจด้วยกราฟที่ใช้คิวในการจัดเก็บจุดยอดเยี่ยมการค้นหาความลึกครั้งแรกคือวิธีการสำรวจด้วยกราฟที่ใช้สแต็กเพื่อจัดเก็บจุดยอดเยี่ยม
ขั้นตอนวิธี การค้นหากว้างครั้งแรกเป็นอัลกอริทึมที่ใช้จุดสุดยอดการค้นหาความลึกแรกคืออัลกอริธึมที่อิงจากขอบ
หน่วยความจำการค้นหากว้างครั้งแรกคือความจำที่ไม่มีประสิทธิภาพการค้นหาความลึกครั้งแรกมีประสิทธิภาพของหน่วยความจำ
ใบสมัคร ตรวจสอบกราฟสองส่วนส่วนประกอบที่เชื่อมต่อและเส้นทางที่สั้นที่สุดที่มีอยู่ในกราฟตรวจสอบกราฟที่เชื่อมต่อแบบสองขอบ, กราฟที่เชื่อมต่ออย่างมาก, กราฟอะคริลิคและลำดับโทโพโลยี

BFS

การค้นหาแบบกว้างครั้งแรกที่เรียกว่า BFS ในไม่ช้า BFS ใช้เพื่อสำรวจกราฟ คิวจะใช้ในการจัดเก็บจุดยอดเยี่ยมใน BFS BFS ทำงานบนจุดยอดเยี่ยมจุดยอดเยี่ยมจะถูกเก็บไว้ในคิว จุดยอดจะถูกจัดเก็บทีละหนึ่ง สำรวจแต่ละโหนดในกราฟอย่างเต็มที่จากนั้นเยี่ยมชมจุดยอดอื่น ๆ ของกราฟ การค้นหาความกว้างแรกใช้เพื่อค้นหากราฟที่เชื่อมต่อหรือไม่ การค้นหาแบบกว้างแรกใช้สำหรับตรวจจับกราฟสองส่วน การค้นหาเส้นทางที่สั้นที่สุดทำได้โดยใช้ BFS


DFS

การค้นหาความลึกครั้งแรกที่รู้จักกันในชื่อ DFS เป็นวิธีการสำรวจด้วยกราฟที่ใช้สแต็กเพื่อจัดเก็บจุดยอด การค้นหาแบบกว้างครั้งแรกไม่ใช่วิธีการหาแบบขอบในขณะที่การค้นหาแบบลึกครั้งแรกเป็นวิธีแบบใช้ขอบการค้นหาความลึกครั้งแรกทำงานในลักษณะวนซ้ำที่สำรวจจุดยอดผ่านขอบ ในการค้นหาเชิงลึกครั้งแรกแต่ละจุดสุดยอดจะถูกเยี่ยมชมหนึ่งครั้งที่ตรวจสอบสองครั้ง

ความแตกต่างที่สำคัญ

  1. การค้นหาแบบกว้างแรกคือวิธีการสำรวจด้วยกราฟที่ใช้คิวสำหรับการจัดเก็บจุดยอดเยี่ยมขณะที่การค้นหาความลึกแรกคือวิธีการสำรวจกราฟที่ใช้กองซ้อนสำหรับจัดเก็บจุดยอดเยี่ยม
  2. การค้นหาแบบกว้างแรกคืออัลกอริธึมที่ใช้จุดสุดยอดในขณะที่การค้นหาความลึกแรกเป็นอัลกอริธึมที่อิง
  3. การค้นหาแบบกว้างแรกคือความไม่มีประสิทธิภาพของหน่วยความจำในขณะที่การค้นหาความลึกครั้งแรกนั้นมีประสิทธิภาพของหน่วยความจำ
  4. ตรวจสอบกราฟสองส่วนส่วนประกอบที่เชื่อมต่อและเส้นทางที่สั้นที่สุดที่อยู่ในกราฟในขณะที่ตรวจสอบกราฟที่เชื่อมต่อสองขอบกราฟที่เชื่อมต่ออย่างยิ่งกราฟอะคริลิคและลำดับทอพอโลยี

ข้อสรุป

ในบทความข้างต้นเราเห็นความแตกต่างที่ชัดเจนระหว่างการค้นหาลมหายใจแรกและการค้นหาเชิงลึกครั้งแรกด้วยการใช้งาน

วิดีโออธิบาย