Recherche sur le site Web

Algorithme de recherche linéaire et implémentation en C


La recherche linéaire est essentiellement un algorithme de recherche séquentielle.

Dans cet algorithme, l'élément clé est recherché dans le tableau d'entrée donné dans un ordre séquentiel.

Si l'élément clé est trouvé dans le tableau d'entrée, il renvoie l'élément.

Algorithme de recherche linéaire

Linear_Search (Tableau X, Valeur i)

  • Définissez j sur 1
  • Si j > n, passez à l'étape 7
  • Si X[j] == i, passez à l'étape 6
  • Ensuite, incrémentez j de 1, c'est-à-dire j=j+1
  • Revenir à l'étape 2
  • Affichez l'élément i qui se trouve à un index particulier i, puis passez à l'étape 8
  • Élément d'affichage introuvable dans l'ensemble des éléments d'entrée.
  • Sortie/Fin

Pseudo-code pour la recherche linéaire

procedure LINEAR_SEARCH (array, key)

   for each item in the array
      if match element == key
         return element's index
      end if
   end for

end procedure

Implémentation de la recherche linéaire en C

  • Dans un premier temps, il faut mentionner ou accepter l'élément à rechercher auprès de l'utilisateur.
  • Ensuite, nous créons une boucle for et commençons à rechercher l'élément de manière séquentielle.
  • Dès que le compilateur rencontre une correspondance, c'est-à-dire array[element] == key value, renvoie l'élément ainsi que sa position dans le tableau.
  • Si aucune valeur correspondant à l’entrée n’est trouvée, il renvoie -1.

#include <stdio.h> 

int LINEAR_SEARCH(int inp_arr[], int size, int val) 
{ 
	 
	for (int i = 0; i < size; i++) 
		if (inp_arr[i] == val) 
			return i; 
	return -1; 
} 


int main(void) 
{ 
	int arr[] = { 10, 20, 30, 40, 50, 100, 0 }; 
	int key = 100; 
	int size = 10; 
	int res = LINEAR_SEARCH(arr, size, key); 
	if (res == -1)
	printf("ELEMENT NOT FOUND!!");
    else
    printf("Item is present at index %d", res);
    
	return 0; 
} 

Résultat :

Item is present at index 5

Complexité temporelle de la recherche linéaire

La complexité dans le meilleur des cas est O(1) si l'élément est trouvé dans la première itération de la boucle.

La complexité temporelle dans le pire des cas est O(n), si l'élément recherché est trouvé à la fin du tableau, à condition que la taille du tableau soit n.

Conclusion

Ainsi, dans cet article, nous avons compris et implémenté l'algorithme de recherche linéaire.

Articles connexes: