રેખીય શોધ અલ્ગોરિધમ એ એક સરળ પદ્ધતિ છે જેનો ઉપયોગ સૂચિમાં ચોક્કસ તત્વ શોધવા માટે થાય છે. આ અલ્ગોરિધમ સૂચિમાંના દરેક ઘટકને ક્રમિક રીતે તપાસીને કામ કરે છે જ્યાં સુધી ઇચ્છિત તત્વ ન મળે અથવા સમગ્ર સૂચિને પાર ન કરવામાં આવે.
તે કેવી રીતે કામ કરે છે
- સૂચિમાં પ્રથમ તત્વથી પ્રારંભ કરો.
- લક્ષ્ય મૂલ્ય સાથે વર્તમાન તત્વની તુલના કરો.
- જો વર્તમાન તત્વ લક્ષ્ય મૂલ્યની બરાબર હોય, તો અલ્ગોરિધમ સમાપ્ત થાય છે અને તત્વની સ્થિતિ પરત કરે છે.
- જો નહિં, તો સૂચિમાંના બાકીના ઘટકો દ્વારા પુનરાવર્તન કરવાનું ચાલુ રાખો.
- જો લક્ષ્ય તત્વને શોધ્યા વિના સમગ્ર સૂચિને પાર કરવામાં આવે, તો અલ્ગોરિધમ ન મળ્યું હોવાનું દર્શાવતું મૂલ્ય આપે છે.
ઉદાહરણ
ચાલો કહીએ કે અમારી પાસે પૂર્ણાંકોની સૂચિ છે અને અમે સૂચિમાં 34 નંબર શોધવા માંગીએ છીએ.
સૂચિ: {12, 45, 67, 89, 34, 56, 23, 90}
- પ્રથમ તત્વથી પ્રારંભ કરો: 12. ઇચ્છિત સંખ્યા નથી.
- આગલા તત્વ પર જાઓ: 45. ઇચ્છિત સંખ્યા નથી.
- બાકીના ઘટકો સાથે ચાલુ રાખો: 67, 89, 34. ઘટક 34 ઇચ્છિત સંખ્યા સાથે મેળ ખાય છે.
- અલ્ગોરિધમ સમાપ્ત થાય છે અને 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 જો નંબર ન મળે તો.