Recherche étendue d'abord (BFS
)
BFS
(recherche en largeur d'abord,
recherche en largeur d'abord) - une méthode de parcours de graphe, très souvent utilisée dans les algorithmes simples et avancés. La recherche étendue d'abord fonctionne en parcourant les niveaux individuels du graphique, en commençant par le nœud source et en s'en éloignant progressivement. Ceci est clairement montré dans l'animation.
Pour écrire le BFS
le plus simple, vous devez être capable de travailler avec une structure de données qui vous permet de prendre depuis le début et de le mettre à la fin, et aussi de pouvoir stocker le graphe sous la forme d'une liste d'adjacence (c'est-à-dire avec une file d'attente).
Description formelle de l'algorithme
1) Placer le numéro du sommet à partir duquel la recherche commence dans la file d'attente initialement vide.
2) Extrayez le sommet U
du début de la file d'attente et marquez-le comme utilisé dans un tableau séparé.
3) En fin de file, ajouter tous les sommets que l'on peut atteindre par l'arête du sommet U,
et qui ne sont pas encore étiquetés.
4) Si la file d'attente est vide, alors tous les nœuds du graphe connexe ont été scannés, sinon retournez à l'étape 2.
Complexité
Étant donné que l'algorithme visite tous les nœuds du graphe dans le pire des cas, lors du stockage du graphe sous forme de listes de contiguïté, la complexité temporelle de l'algorithme est O(|V| + |E|)
, où V
est l'ensemble des sommets du graphe et E
est l'ensemble des arêtes. En d'autres termes, l'algorithme fonctionne dans le pire des cas pour nombre d'arêtes + nombre de sommets.