Searching क्या है और इसके प्रकार – Data Structure

Searching क्या है?

Searching का अर्थ होता है — “ढूंढना” या “खोजना”

Searching एक ऐसी प्रक्रिया (process) है जिसमें किसी data collection (जैसे array, list आदि) में किसी एक विशेष element को ढूंढा जाता है।
यदि element मिल जाता है तो उसकी position बताई जाती है, और यदि नहीं मिलता तो “Not Found” दिखाया जाता है।

सरल शब्दों में कहें तो, “किसी data में जरूरी item को खोजने की प्रक्रिया को Searching कहते हैं।”

उदाहरण के लिए, यदि किसी Students की list में “Rahul” नाम के छात्र को ढूंढना हो, तो उसके नाम को list में search किया जाता है।
इसी प्रकार यदि एक array में 10, 20, 30, 40, 50 है और हमें 30 ढूंढना है, तो searching तकनीक का उपयोग किया जाएगा।

Types of Searching in Hindi – Searching के प्रकार

डेटा स्ट्रक्चर में Searching दो प्रकार की होती है:

  1. Linear Searching
  2. Binary Searching

Linear Searching in Hindi

Linear Searching में data के elements को शुरुआत से एक-एक करके check किया जाता है, जब तक जरूरी element मिल न जाए। यदि element मिल जाता है तो searching रुक जाती है, अन्यथा सभी elements को check किया जाता है।

इसे Sequential Search भी कहा जाता है, क्योंकि इसमें elements को क्रम (sequence) से check किया जाता है।

इसमें जिस element को खोजना होता है, उसे list के पहले element से मिलाकर देखा जाता है।
यदि दोनों समान होते हैं, तो element की position (index) मिल जाती है। यदि समान नहीं होते, तो अगले element को check किया जाता है।

इसी प्रकार element को एक-एक करके पूरी list में खोजा जाता है, जब तक वह मिल न जाए।
यदि पूरी list check करने के बाद भी element नहीं मिलता, तो search असफल (unsuccessful) माना जाता है।

यह searching की सबसे आसान तकनीक है, लेकिन बड़े data में इसे अधिक समय लगता है, क्योंकि इसमें कई elements को एक-एक करके check करना पड़ता है।

Linear search की औसत case complexity O(n) है

उदाहरण के द्वारा हम इसे आसानी से समझ सकते है.

माना कि हमारे पास निम्नलिखित array लिस्ट है.

21701530567880

और हमें इसमें 30 को खोजना है.

Step1:- दिए गये element (30) को लिस्ट के प्रथम element (21) के साथ compare (तुलना) किया जाता है.

21701530567880

दोनों एकसमान नहीं है तो हम दुसरे element में जायेंगे.

Step2:- 30 की लिस्ट के दुसरे element (70) के साथ तुलना करेंगे

21701530567880

दोनों एकसमान नहीं है तो हम अगले element में जायेंगे.

Step3:- 30 की तुलना 15 के साथ करेंगे.

21701530567880

दोनों एक समान नहीं है तो हम अगले element में जायेंगे.

Step4:- अब हम दिए गये element (30) की तुलना अगले element 30 के साथ करेंगे.

21701530567880

दोनों एक समान है तो हम तुलना करना बंद कर देंगे और index 3 रिटर्न करेंगे.

Binary Searching in Hindi

जब कोई बड़ा Data Structure होता है तो linear search में बहुत अधिक समय लग जाता है इसलिए linear search की इस कमी को दूर करने के लिए binary search को विकसित किया गया।

Binary Search एक तेज searching तकनीक है, जिसका उपयोग किसी sorted list या array में element को खोजने के लिए किया जाता है। इसमें data को बार-बार दो भागों में बाँटकर (divide करके) element को search किया जाता है।

Binary search की time complexity O(log n) है और यह divide & conquer सिद्धांत पर आधारित है

Binary search केवल उसी लिस्ट में की जा सकती है जो कि sorted (क्रमानुसार) हों. इसका प्रयोग ऐसी लिस्ट में नहीं कर सकते जो कि sorted order में नहीं है

इस सर्चिंग तकनीक में दिए गये element की लिस्ट के middle element के साथ तुलना की जाती है, यदि दोनों एकसमान है तो वह index value रिटर्न करता है.

यदि एक समान नहीं है तो हम check करते है कि दिया गया element जो है वह middle element से बड़ा है या छोटा.

यदि वह छोटा है तो हम लिस्ट के छोटे भाग में यही प्रक्रिया दोहराएंगे और यदि वह बड़ा है तो हम लिस्ट के बड़े भाग में यही प्रक्रिया दोहराएंगे. और यह तब तक करेंगे जब तक कि element मिल नहीं जाता.

उदाहरण:- इसको हम उदाहरण के द्वारा समझ सकते हैमाना हमारे पास निम्नलिखित sorted array है

351117253032

हमें दिया गया element 5 है जिसे हमने लिस्ट में ढूंढना है.

Step1:– सबसे पहले हम दिए गये element 5 की तुलना middle element 17 से करते है.

351117253032

दोनों एकसमान नहीं है और 5 जो है वह 17 से छोटा है.

तो हम लिस्ट के बाएं वाले भाग (छोटे वाले भाग) में ही search करेंगे.

3511

Step2:– दिए गये element 5 को middle element 5 के साथ compare करेंगे.

3511

दोनों एकसमान है तो हम तुलना करना बंद कर देंगे. और index 1 रिटर्न करेंगे.

Linear Searching और Binary Searching में अंतर

Linear SearchingBinary Searching
इसमें Elements को एक-एक करके शुरुआत से अंत तक check किया जाता है।इसमें Data को बीच (middle) से divide करके search किया जाता है।
यह unsorted data पर भी काम करती है।यह केवल sorted data पर काम करती है।
इस Searching में अधिक समय लग सकता है।इसमें Searching तेज गति से होती है।
इसका implementation आसान होता है।इसका implementation थोड़ा कठिन होता है।
बड़े data में performance धीमी होती है।बड़े data में performance बेहतर होती है।
इसकी time complexity O(n) होती है।इसकी time complexity O(log n) होती है।

इसे भी पढ़ें:- Data structure operations

निवेदन:– आपको Searching in Data Structure in Hindi की यह पोस्ट कैसी लगी हमें comment के द्वारा बताइए तथा इस पोस्ट को अपने दोस्तों के share करें. धन्यवाद.

Leave a Comment