logo

Program C za iskanje elementa v nizu

V tem članku bomo razpravljali o programu C za iskanje elementa v matriki z različnimi načini in primeri.

Kaj je niz?

A struktura podatkov imenovan an niz vsebuje serijo elementov enakega tipa s fiksno dolžino. Pogosto se uporablja za shranjevanje in manipulacijo zbirk podatkov, ker indeksiranje omogoča učinkovit dostop.

razred proti objektu v Javi

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

Iskanje elementa v nizu

Tipična operacija v računalniškem programiranju je iskanje določenega elementa v nizu. Učinkovitost vaše kode se lahko močno izboljša z uporabo učinkovitih algoritmov iskanja, ne glede na to, ali iščete obstoj določene vrednosti, ki locira indeks elementa, ali preverjate, ali element obstaja. V tem članku bomo razpravljali o številnih metodah za iskanje elementov v matriki z uporabo programskega jezika C.

Obstajata predvsem dva načina iskanja elementa v nizu:

1. Linearno iskanje

Pokliče se preprosta iskalna strategija, ki se uporablja za iskanje danega elementa v matriki ali na seznamu linearno iskanje , včasih imenovan tudi kot zaporedno iskanje . Deluje tako, da primerja vsakega člana matrike s ciljno vrednostjo, da najde a tekma oz prečenje celoten niz iterativno.

kaj je samodejno ožičeno v Javi

Temeljni koraki linearnega iskanja so naslednji:

    Začetek z najvišjimi elementi matrike.
  1. Ciljno vrednost je treba primerjati s trenutnim elementom.
  2. Iskanje je uspešno, če se trenutni element ujema z zahtevano vrednostjo, nato pa lahko algoritem vrne indeks elementa ali kateri koli drug želeni rezultat.
  3. Pojdite na naslednji element v matriki, če se trenutni element ne ujema z želeno vrednostjo.
  4. Dokler ni doseženo ujemanje ali dosežen konec niza, ponavljajte korake 2–4.

Program:

 #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. Binarno iskanje

The binarno iskanje tehnika se uporablja za hitro iskanje določenega elementa v razvrščeni niz oz seznam . Uporablja a deli in vladaj strategijo , občasno rezanje območja iskanja na polovico, dokler se ciljni element ne najde ali se ugotovi, da je odsoten.

Tako deluje binarno iskanje:

  1. Za osnovo imejte razvrščeno polje ali seznam.
  2. Vzpostavite dva kazalca, levo in prav , pri čemer njihove začetne vrednosti kažejo na prve in končne člane matrike.
  3. Uporaba (levo + desno) / 2 da dobite indeks osrednjega elementa.
  4. Primerjajte ciljno vrednost s srednjim elementom.
    1. Iskanje je uspešno, če sta enaka, nato pa lahko program vrne kazalo ali katerega koli drugega zahtevanega rezultata.
    2. Desni kazalec je treba premakniti na element pred srednji element če je srednji element večji od ciljne vrednosti.
    3. Premakni levi kazalec na element, ki sledi srednji element če je vrednost srednjega elementa manjša od ciljne vrednosti.
  5. Koraki 3 in 4 je treba ponavljati, dokler ni ciljni element ali levi kazalec ne preseže desnega kazalca.
  6. Želenega elementa ni v matriki, če ga ni mogoče najti.

Program:

 #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></=>