اولین جستجوی پهنا (BFS
)
BFS
(جستجوی عرض-اول،
جستجوی عرض-اول) - یک روش پیمایش نمودار، که اغلب در الگوریتم های ساده و پیشرفته استفاده می شود. جستجوی Breadth-First با قدم گذاشتن در سطوح جداگانه نمودار، شروع از گره منبع و دور شدن تدریجی از آن کار می کند. این به وضوح در انیمیشن نشان داده شده است.
برای نوشتن ساده ترین BFS
، باید بتوانید با ساختار داده ای کار کنید که به شما امکان می دهد از ابتدا بردارید و آن را تا آخر قرار دهید و همچنین بتوانید ذخیره کنید نمودار به شکل یک لیست مجاورت (یعنی با یک صف).
توضیحات رسمی الگوریتم
1) شماره رأسی را که جستجو از آن شروع می شود در صف اولیه خالی قرار دهید.
2) راس U
را از ابتدای صف استخراج کرده و آن را به عنوان مورد استفاده در یک آرایه جداگانه علامت گذاری کنید.
3) در انتهای صف، تمام رئوسهایی را که میتوانیم با استفاده از لبه راس U,
به آنها برسیم و هنوز برچسبگذاری نشدهاند، اضافه کنید.
4) اگر صف خالی باشد، تمام گره های گراف متصل شده اسکن شده اند، در غیر این صورت به مرحله 2 برگردید.
پیچیدگی
از آنجایی که الگوریتم در بدترین حالت از تمام گره های نمودار بازدید می کند، هنگام ذخیره نمودار به عنوان لیست های مجاورت، پیچیدگی زمانی الگوریتم O(|V| + |E|)
است. ، که در آن V
مجموعه ای از رئوس نمودار است و E
مجموعه ای از یال ها است. به عبارت دیگر، الگوریتم در بدترین حالت برای عدد کار می کند. از یال ها + تعداد رئوس.