logo

Programme C pour rechercher un élément dans un tableau

Dans cet article, nous discuterons du programme C pour rechercher un élément dans un tableau avec leurs différentes manières et exemples.

Qu’est-ce qu’un tableau ?

UN Structure de données appelé un tableau contient une série d’éléments de type identique de longueur fixe. Il est fréquemment utilisé pour stocker et manipuler des collections de données, car l'indexation permet un accès efficace.

Ex : intnumbers[] = {10, 20, 30, 40, 50} ;

liste des méthodes java

Rechercher un élément dans un tableau

Une opération typique en programmation informatique consiste à rechercher un élément particulier dans un tableau. L'efficacité de votre code peut être grandement améliorée en utilisant des algorithmes de recherche efficaces, que vous recherchiez l'existence d'une certaine valeur, localisant l'index d'un élément ou vérifiant si un élément existe. Les nombreuses méthodes de recherche d'éléments dans un tableau à l'aide du langage de programmation C seront abordées dans cet article.

Il existe principalement deux manières de rechercher un élément dans un tableau :

arbres évasés

1. Recherche linéaire

Une stratégie de recherche simple utilisée pour localiser un élément donné dans un tableau ou une liste est appelée recherche linéaire , parfois appelé recherche séquentielle . Il fonctionne en comparant chaque membre du tableau à la valeur cible pour trouver un correspondre ou traverser le tableau complet de manière itérative.

Les étapes fondamentales de la recherche linéaire sont les suivantes :

Qu'est-ce qu'un ordinateur
    Commencer avec les éléments les plus élevés du tableau.
  1. La valeur cible doit être comparée à l'élément actuel.
  2. La recherche réussit si l'élément actuel correspond à la valeur demandée, puis l'algorithme peut renvoyer l'index de l'élément ou toute autre sortie souhaitée.
  3. Accédez à l'élément suivant du tableau si l'élément actuel ne correspond pas à la valeur souhaitée.
  4. Jusqu'à ce qu'une correspondance soit établie ou que la fin du tableau soit atteinte, répétez les étapes 2 à 4.

Programme:

 #include int linearSearch(int arr[], int n, int target) { for (int i = 0; i<n; i++) { if (arr[i]="=" target) return i; the index target is found } -1; -1 not int main() arr[]="{5," 2, 8, 12, 3}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="linearSearch(arr," n, target); (result="=" -1) printf('element found
'); else at %d
', result); 0; < pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 2 </pre> <h3>2. Binary Search</h3> <p>The <strong> <em>binary search</em> </strong> technique is utilized to quickly locate a specific element in a sorted <strong> <em>array</em> </strong> or <strong> <em>list</em> </strong> . It uses a <strong> <em>divide-and-conquer</em> </strong> <strong> <em>strategy</em> </strong> , periodically cutting the search area in half until the target element is located or found to be absent.</p> <p>This is how binary search functions:</p> <ol class="points"> <li>Have a sorted array or list as a base.</li> <li>Establish two pointers, <strong> <em>left</em> </strong> and <strong> <em>right</em> </strong> , with their initial values pointing to the array&apos;s first and end members.</li> <li>Use <strong> <em>(left + right) / 2</em> </strong> to get the index of the center element.</li> <li>Compare the target value to the middle element. <ol class="pointsa"> <li>The search is successful if they are equal, and then the program can return the <strong> <em>index</em> </strong> or any other required result.</li> <li>The right pointer should be moved to the element preceding the <strong> <em>middle element</em> </strong> if the middle element is greater than the target value.</li> <li>Move the <strong> <em>left pointer</em> </strong> to the element following the <strong> <em>middle element</em> </strong> if the middle element&apos;s value is less than the target value.</li> </ol></li> <li>Steps <strong> <em>3</em> </strong> and <strong> <em>4</em> </strong> should be repeated until the target element is located or the left pointer exceeds the right pointer.</li> <li>The desired element is not in the array if it cannot be located.</li> </ol> <p> <strong>Program:</strong> </p> <pre> #include int binarySearch(int arr[], int left, int right, int target) { while (left <= right) { int mid="left" + (right-left) 2; if (arr[mid]="=" target) return mid; the index target is found } < left="mid" 1; else right="mid-1;" -1; -1 not main() arr[]="{2," 5, 8, 12, 20, 23, 28}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="binarySearch(arr," 0, - 1, target); (result="=" -1) printf('element found
'); at %d
', result); 0; pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 4 </pre> <hr></=></pre></n;>

2. Recherche binaire

Le recherche binaire technique est utilisée pour localiser rapidement un élément spécifique dans un tri tableau ou liste . Il utilise un diviser et conquérir stratégie , coupant périodiquement la zone de recherche en deux jusqu'à ce que l'élément cible soit localisé ou constaté absent.

Voici comment fonctionne la recherche binaire :

  1. Avoir un tableau ou une liste triée comme base.
  2. Établir deux pointeurs, gauche et droite , avec leurs valeurs initiales pointant vers les premier et dernier membres du tableau.
  3. Utiliser (gauche + droite) / 2 pour obtenir l'index de l'élément central.
  4. Comparez la valeur cible à l'élément du milieu.
    1. La recherche réussit s'ils sont égaux, et le programme peut alors renvoyer le indice ou tout autre résultat requis.
    2. Le pointeur droit doit être déplacé vers l'élément précédant le élément central si l'élément du milieu est supérieur à la valeur cible.
    3. Bouge le pointeur gauche à l'élément suivant le élément central si la valeur de l'élément du milieu est inférieure à la valeur cible.
  5. Pas 3 et 4 doit être répété jusqu'à ce que l'élément cible soit localisé ou que le pointeur gauche dépasse le pointeur droit.
  6. L'élément souhaité n'est pas dans le tableau s'il ne peut pas être localisé.

Programme:

 #include int binarySearch(int arr[], int left, int right, int target) { while (left <= right) { int mid="left" + (right-left) 2; if (arr[mid]="=" target) return mid; the index target is found } < left="mid" 1; else right="mid-1;" -1; -1 not main() arr[]="{2," 5, 8, 12, 20, 23, 28}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="binarySearch(arr," 0, - 1, target); (result="=" -1) printf(\'element found
\'); at %d
\', result); 0; pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 4 </pre> <hr></=>