Algoritmu tat-Tiftix Lineari (Linear Search) f'C++- Spjegazzjoni, Eżempju u Kodiċi

L-algoritmu ta' tfittxija lineari huwa metodu sempliċi użat biex jinstab element speċifiku f'lista. Dan l-algoritmu jaħdem billi jiċċekkja b'mod sekwenzjali kull element fil-lista sakemm jinstab l-element mixtieq jew il-lista kollha tiġi traversata.

Kif taħdem

  1. Ibda mill-ewwel element fil-lista.
  2. Qabbel l-element kurrenti mal-valur fil-mira.
  3. Jekk l-element kurrenti huwa ugwali għall-valur fil-mira, l-algoritmu jintemm u jirritorna l-pożizzjoni tal-element.
  4. Jekk le, kompli itera permezz tal-elementi li fadal fil-lista.
  5. Jekk il-lista kollha tiġi traversata mingħajr ma jinstab l-element fil-mira, l-algoritmu jirritorna valur li jindika li ma nstabx.

Eżempju

Ejja ngħidu li għandna lista ta 'numri interi u rridu nsibu n-numru 34 fil-lista.

Lista: {12, 45, 67, 89, 34, 56, 23, 90}

  1. Ibda mill-ewwel element: 12. Mhux in-numru mixtieq.
  2. Imxi għall-element li jmiss: 45. Mhux in-numru mixtieq.
  3. Kompli bl-elementi li fadal: 67, 89, 34. L-element 34 jaqbel man-numru mixtieq.
  4. L-algoritmu jtemm u jirritorna l-pożizzjoni ta '34, li hija 4.

Eżempju Kodiċi f'C++

#include <iostream>  
#include <vector>  
  
int linearSearch(const std::vector<int>& arr, int target) {  
    for(int i = 0; i < arr.size(); ++i) {  
        if(arr[i] == target) {  
            return i;  
        }  
    }  
    return -1;  
}  
  
int main() {  
    std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};  
    int target = 34;  
  
    int result = linearSearch(numbers, target);  
  
    if(result != -1) {  
        std::cout << "Element " << target << " found at position " << result << std::endl;  
    } else {  
        std::cout << "Element " << target << " not found in the array" << std::endl;  
    }  
  
    return 0;  
}  

Fl-eżempju mogħti, użajna l- linearSearch funzjoni biex insibu n-numru 34 fil-lista tan-numri interi. Ir-riżultat ikun il-pożizzjoni ta' 34 fil-lista(il-pożizzjonijiet jibdew minn 0) jew -1 jekk in-numru ma jinstabx.