Data Structure Searching In Hindi & Its Types Linear & Binary

Searching in Data Structure in Hindi: डेटा-स्ट्रक्चर में सर्चिंग का मतलब किसी भी एलिमेंट को खोजने की प्रक्रिया होती है।  बता दें कि जिस एलिमेंट को सर्च किया जाता है उसे टारगेट कहते हैं।  डाटा स्ट्रक्चर में  सर्च लिए जाने वाला एलिमेंट हो सकता है जैसे लिस्ट (list), array (ऐरे), linked-list (लिंक्ड-लिस्ट), tree or graph (ट्री या ग्राफ) आदि।

सीधे शब्दों में कहें तो सर्चिंग का मतलब किसी भी स्टोर डाटा में किसी भी एलिमेंट का खोज करना है।  डाटा डेटा-स्ट्रक्चर में सर्चिंग के लिए विभिन्न तरह की एल्गोरिदम का उपयोग किया जाता है। अगर आप  डेटा-स्ट्रक्चर में सर्चिंग (Searching in data-strucutre) के और जानना चाहते हैं तो इस लेख को पूरा पढ़ें, यहाँ हम आपको विभिन्न सर्च एल्गोरिदम के बारे में भी जानकारी देंगे।

लीनियर सर्च हिंदी में- Linear Search in Hindi

Linear Search में किसी भी list को एक क्रमिक रूप से खोजा जाता है। इस सर्चिंग में दिए गए एलिमेंट को लिस्ट में एक एक करके list के हर एक एलिमेंट से compare किया जाता है।  यह प्रक्रिया तब तक चलती है तब तक element को खोजा नहीं जाता।  

सबसे पहले desired element को list के सबसे पहले वाले element के साथ compareकिया जाता है।  अगर desired element मिल जाता है तो index value रिटर्न करता है नहीं तो -1 रिटर्न होता है।

अब इसके बाद desired element को list के सबसे दूसरे वाले element के साथ compare किया जाता है।  अगर desired element मिल जाता है पहले के जैसे ही index value रिटर्न की जाती है नहीं तो -1 रिटर्न करता है।

इसी प्रकार पूरी list को desired element से compare किया जाता है।  जब तक एलिमेंट नहीं मिल जाता।  अगर पूरी लिस्ट में search करने के बाद भी desired element नहीं मिलता तो ऐसे में यह प्रक्रिया असफल हो जाती है।  आपको बता दें कि linear searching एक बहुत सरल ऍल्गोरिथम  है लेकिन इसमें समय कैफ ज्यादा लग जाता है।  linear search की average case complexity O(n) है।

linear Search
bool linear_search ( int *list, int size, int key, int* rec )
{
     // Basic Linear search
     bool found = false;

     int i;
     for ( i = 0; i < size; i++ )
           {
                if ( key == list[i] )
                      break;
            }
              if ( i < size )
                 {
                      found = true;
                      rec = &list[i];
                 }
               return found;
} 

बाइनरी सर्च इन हिंदी- Binary search in hindi:-

जैसा कि linear search के बारे में हम आपको बता चुकें हैं कि यह बहुत सरल होती है लेकिन जब कभी data ज्यादा बड़ा होता है तो ऐसे में  linear search उसमे ज्यादा समय लगा देता है इसलिए linear search की इस कमी को दूर करते हुए binary search को बनाया गया।  

Binary search की बात करें तो यह सर्चिंग को बहुत ही तेजी से करती है।  यह बड़े डाटा के लिए एक दम सही है।  आपको बता दें कि यह search algo, Divide & conquer सिद्धांत पर काम करती है।  इस searching अल्गोरिथम है की time complexity O(log n) है।  यह d पर आधारित है।

आपको बता दें कि binary search सिर्फ उसी list में की जा सकती है जो कि sorted (क्रमानुसार) हो।  जो भी लिस्ट क्रमानुसार आर्डर में नहीं है उसमें binary search अल्गोरिथम नहीं लगाईं जा सकती।

bool Binary_Search ( int *list, int size, int key, int* rec )

{

bool found = false;

int low = 0, high = size – 1;

while ( high >= low )

{

int mid = ( low + high ) / 2;

if ( key < list[mid] )

high = mid – 1;

else

if ( key > list[mid] )

low = mid + 1;

else

{

found = true;

rec = &list[mid];

break;

}

}

return found;

}

बाइनरी सर्च को परफॉर्म करने के लिए को लिस्ट के बीच वाले यानी कि middle element के साथ compare किया जाता है।  अगर desired element और

लिस्ट का element सामान है तो  तो index value रिटर्न करता है नहीं तो check किया जाता है कि desired element क्या middle element छोटा है या बड़ा है।  अगर वह middle  element से छोटा है तो सभी छोटे element में search किया जायेगा और अगर वो  middle  element से बड़ा है तो सभी बड़े element में इसे search किया जायेगा।  इस तरह यह प्रक्रिया चलती रहेगी जब तक कि element मिल नहीं जाता।

उदाहरण (Example)

यहाँ पर हमने बाइनरी search को बहुत ही अच्छी तरह से समझाया है.  नीचे दिए गए उदहारण से आप बाइनरी सर्च की प्रकिया को अच्छी तरह से समझ सकते हैं.

binary search

यहाँ पर हमारे पास एक array लिस्ट है.

461218263032

मान जो कि 6 वो एलिमेंट है जिसे हमे search करना है.

binary search में हम अपने desired element की तुलना सबसे पहले middle element से करते हैं. इसलिए हम यह देखेंगे कि वह middle element से बड़ा है या छोटा. आप देख सकते हैं कि list में middle element 18 है.

4612182630

18 से 6 छोटा है इसलिए हम 18 से छोटे यानी कि बाएं वाले भाग में search algo लगायेंगे.

4612

step2:

अब हम 6 को middle element के साथ campare करेंगे. लेकिन middle एलिमेंट हमारे desired element के सामान है इसलिए हम सर्चिंग करना बंद कर देंगे और index 1 रिटर्न होगा.

Leave a Reply

Your email address will not be published.

*