(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 ਜੇਕਰ ਨੰਬਰ ਨਹੀਂ ਮਿਲਦਾ ਹੈ।