टॉपिक
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 दो प्रकार की होती है:
- Linear Searching
- 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 लिस्ट है.
| 21 | 70 | 15 | 30 | 56 | 78 | 80 |
|---|
और हमें इसमें 30 को खोजना है.
Step1:- दिए गये element (30) को लिस्ट के प्रथम element (21) के साथ compare (तुलना) किया जाता है.
| 21 | 70 | 15 | 30 | 56 | 78 | 80 |
|---|
दोनों एकसमान नहीं है तो हम दुसरे element में जायेंगे.
Step2:- 30 की लिस्ट के दुसरे element (70) के साथ तुलना करेंगे
| 21 | 70 | 15 | 30 | 56 | 78 | 80 |
|---|
दोनों एकसमान नहीं है तो हम अगले element में जायेंगे.
Step3:- 30 की तुलना 15 के साथ करेंगे.
| 21 | 70 | 15 | 30 | 56 | 78 | 80 |
|---|
दोनों एक समान नहीं है तो हम अगले element में जायेंगे.
Step4:- अब हम दिए गये element (30) की तुलना अगले element 30 के साथ करेंगे.
| 21 | 70 | 15 | 30 | 56 | 78 | 80 |
|---|
दोनों एक समान है तो हम तुलना करना बंद कर देंगे और 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 है।
| 3 | 5 | 11 | 17 | 25 | 30 | 32 |
|---|
हमें दिया गया element 5 है जिसे हमने लिस्ट में ढूंढना है.
Step1:– सबसे पहले हम दिए गये element 5 की तुलना middle element 17 से करते है.
| 3 | 5 | 11 | 17 | 25 | 30 | 32 |
|---|
दोनों एकसमान नहीं है और 5 जो है वह 17 से छोटा है.
तो हम लिस्ट के बाएं वाले भाग (छोटे वाले भाग) में ही search करेंगे.
| 3 | 5 | 11 |
|---|
Step2:– दिए गये element 5 को middle element 5 के साथ compare करेंगे.
| 3 | 5 | 11 |
|---|
दोनों एकसमान है तो हम तुलना करना बंद कर देंगे. और index 1 रिटर्न करेंगे.
Linear Searching और Binary Searching में अंतर
| Linear Searching | Binary 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 करें. धन्यवाद.