बीएफएस (चौड़ाई-पहली खोज) एक ग्राफ ट्रैवर्सल विधि है, जो अक्सर सरल और उन्नत एल्गोरिदम दोनों में उपयोग की जाती है। ब्रेड्थ-फर्स्ट सर्च ग्राफ़ के अलग-अलग स्तरों के माध्यम से काम करता है, स्रोत नोड से शुरू होता है और धीरे-धीरे इससे दूर हो जाता है। यह एनीमेशन में स्पष्ट रूप से दिखाया गया है।
>
एक साधारण बीएफएस लिखने के लिए, आपको कतार के साथ काम करने में सक्षम होना चाहिए, एक डेटा संरचना जो आपको शुरू से लेने और इसे अंत तक रखने की अनुमति देती है, और फॉर्म में एक ग्राफ को स्टोर करने में भी सक्षम है। निकटता सूची की।
एल्गोरिदम का औपचारिक विवरण
1) शुरुआती खाली कतार में उस शीर्ष की संख्या डालें जहां से खोज शुरू होती है।
2) कतार की शुरुआत से वर्टेक्स यू निकालें और इसे एक अलग सरणी में उपयोग के रूप में चिह्नित करें।
3) कतार के अंत में, उन सभी शीर्षों को जोड़ें, जिन तक हम शीर्ष U से किनारे का उपयोग करके पहुंच सकते हैं और जो अभी तक चिह्नित नहीं हैं।
4) यदि कतार खाली है, तो जुड़े हुए ग्राफ़ के सभी नोड्स स्कैन किए गए हैं, अन्यथा चरण 2 पर वापस लौटें।
काम में कठिनाई
चूंकि, सबसे खराब स्थिति में, एल्गोरिथ्म ग्राफ के सभी नोड्स पर जाता है, जब ग्राफ को आसन्न सूचियों के रूप में संग्रहीत किया जाता है, तो एल्गोरिथ्म की समय जटिलता O(|V| + |E|) होती है, जहां V सेट होता है ग्राफ़ के शीर्षों की संख्या, और E किनारों का समूह है। ;
दूसरे शब्दों में, एल्गोरिदम किनारों की संख्या + शीर्षों की संख्या के लिए सबसे खराब स्थिति में काम करता है।