Linear Search (Linear Search) Algorithm katika C++- Maelezo, Mfano, na Kanuni

Algorithm ya utafutaji ya mstari ni njia rahisi inayotumiwa kupata kipengele maalum katika orodha. Algorithm hii inafanya kazi kwa kuangalia kila kipengele kwenye orodha kwa mpangilio hadi kipengele kinachohitajika kipatikane au orodha nzima ipitishwe.

Inavyofanya kazi

  1. Anza kutoka kwa kipengele cha kwanza kwenye orodha.
  2. Linganisha kipengele cha sasa na thamani inayolengwa.
  3. Ikiwa kipengele cha sasa kinalingana na thamani inayolengwa, kanuni huisha na kurudisha nafasi ya kipengele.
  4. Ikiwa sivyo, endelea kurudia kupitia vipengele vilivyosalia kwenye orodha.
  5. Ikiwa orodha nzima inapitiwa bila kupata kipengele kinacholengwa, kanuni hurejesha thamani inayoonyesha kutopatikana.

Mfano

Wacha tuseme tunayo orodha ya nambari kamili na tunataka kupata nambari 34 kwenye orodha.

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

  1. Anza kwenye kipengele cha kwanza: 12. Sio nambari inayotakiwa.
  2. Nenda kwa kipengele kinachofuata: 45. Sio nambari inayotakiwa.
  3. Endelea na vipengele vilivyobaki: 67, 89, 34. Kipengele cha 34 kinalingana na nambari inayotakiwa.
  4. Algorithm inaisha na kurudisha nafasi ya 34, ambayo ni 4.

Msimbo wa Mfano katika 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;  
}  

Katika mfano uliotolewa, tumetumia linearSearch chaguo la kukokotoa kupata nambari 34 katika orodha ya nambari kamili. Matokeo yatakuwa nafasi ya 34 kwenye orodha(nafasi zinaanzia 0) au -1 ikiwa nambari haipatikani.