ხაზოვანი ძიების (Linear Search) ალგორითმი C++-ში- ახსნა, მაგალითი და კოდი

ხაზოვანი ძიების ალგორითმი არის მარტივი მეთოდი, რომელიც გამოიყენება სიაში კონკრეტული ელემენტის მოსაძებნად. ეს ალგორითმი მუშაობს სიაში თითოეული ელემენტის თანმიმდევრული შემოწმებით, სანამ სასურველი ელემენტი არ მოიძებნება ან მთელი სია არ გაივლება.

Როგორ მუშაობს

  1. დაიწყეთ სიის პირველი ელემენტიდან.
  2. შეადარეთ მიმდინარე ელემენტი სამიზნე მნიშვნელობასთან.
  3. თუ მიმდინარე ელემენტი უდრის სამიზნე მნიშვნელობას, ალგორითმი მთავრდება და აბრუნებს ელემენტის პოზიციას.
  4. თუ არა, განაგრძეთ გამეორება სიაში დარჩენილი ელემენტების მეშვეობით.
  5. თუ მთელი სია გადის სამიზნე ელემენტის პოვნის გარეშე, ალგორითმი აბრუნებს მნიშვნელობას, რომელიც მიუთითებს ვერ მოიძებნა.

მაგალითი

ვთქვათ, გვაქვს მთელი რიცხვების სია და გვინდა ვიპოვოთ რიცხვი 34 სიაში.

სია: {12, 45, 67, 89, 34, 56, 23, 90}

  1. დაიწყეთ პირველი ელემენტიდან: 12. არ არის სასურველი რიცხვი.
  2. გადადით შემდეგ ელემენტზე: 45. არ არის სასურველი ნომერი.
  3. გააგრძელეთ დარჩენილი ელემენტებით: 67, 89, 34. ელემენტი 34 ემთხვევა სასურველ რიცხვს.
  4. ალგორითმი მთავრდება და აბრუნებს 34-ის პოზიციას, რაც არის 4.

კოდის მაგალითი 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;  
}  

მოცემულ მაგალითში ჩვენ გამოვიყენეთ linearSearch ფუნქცია 34 რიცხვის საპოვნელად მთელი რიცხვების სიაში. შედეგი იქნება 34-ის პოზიცია სიაში(პოზიციები იწყება 0-დან) ან -1, თუ რიცხვი ვერ მოიძებნა.