BCA / B.Tech 8 min read

Algorithm of Searching in Hindi

Searching Algorithms in Data Structure in Hindi | डाटा स्ट्रक्चर में खोज एल्गोरिदम हिंदी में :


  • खोज एल्गोरिदम डेटा संरचनाओं में किसी विशेष तत्व या मान को खोजने के लिए उपयोग की जाने वाली विधियाँ हैं। इन एल्गोरिदम का उपयोग विभिन्न प्रकार की डेटा संरचनाओं में किया जाता है, 
  • खोज एल्गोरिदम डेटा प्रबंधन में एक महत्वपूर्ण भूमिका निभाते हैं। रेखीय खोज सरल और सीधी है, जबकि बाइनरी खोज और अन्य तकनीकें अधिक कुशल हैं, लेकिन इन्हें लागू करने के लिए डेटा का क्रमबद्ध होना आवश्यक है। सही खोज तकनीक का चयन करते समय डेटा 
  • का आकार, क्रम और विशेषताएँ ध्यान में रखनी चाहिए। इस प्रकार, प्रभावी खोज प्रक्रिया डेटा विश्लेषण और प्रबंधन के लिए आवश्यक है।
जैसे कि एरेज़ (arrays), लिंकेड लिस्ट (linked lists),  सेट (sets), और मैप्स (maps)। इस उत्तर में, हम विभिन्न प्रकार के खोज एल्गोरिदम और उनके कार्यप्रणाली, लाभ, और उदाहरणों पर चर्चा करेंगे।

1. रेखीय खोज (Linear Search)

परिभाषा:

रेखीय खोज एक सरल और प्रत्यक्ष खोज तकनीक है जिसमें एक सूची के प्रत्येक तत्व को क्रम से देखा जाता है जब तक कि वांछित तत्व नहीं मिल जाता।

कैसे कार्य करता है:

खोज शुरू करने के लिए, पहले तत्व से शुरुआत की जाती है।
हर तत्व की तुलना की जाती है वांछित तत्व से।
यदि तत्व मिल जाता है, तो उसका इंडेक्स लौटाया जाता है; अन्यथा, यह प्रक्रिया तब तक जारी रहती है जब तक सूची के सभी तत्वों को न देख लिया जाए।

समय जटिलता:

औसत और सबसे खराब स्थिति में O(n)
उदाहरण: मान लीजिए कि हमारे पास निम्नलिखित संख्या की सूची है:
[3, 5, 2, 4, 9, 1]
यदि हमें 4 को खोजना है, तो हमें सूची के सभी तत्वों की जांच करनी होगी। रेखीय खोज की प्रक्रिया निम्नलिखित होगी:

3 → नहीं
5 → नहीं
2 → नहीं
4 → हाँ, तत्व मिल गया।

2. बाइनरी खोज (Binary Search)

परिभाषा:

बाइनरी खोज एक कुशल खोज तकनीक है जो क्रमबद्ध डेटा संरचनाओं पर कार्य करती है। यह सूची को आधा करके और पिवट तत्व का उपयोग करके खोजती है।

कैसे कार्य करता है:

  • पहले, सूची का मध्य तत्व चुना जाता है।
  • यदि पिवट तत्व वांछित तत्व से छोटा है, तो उच्च आधे में खोज की जाती है।
  • यदि पिवट तत्व वांछित तत्व से बड़ा है, तो निम्न आधे में खोज की जाती है।
  • यह प्रक्रिया तब तक चलती है जब तक तत्व नहीं मिल जाता या सूची समाप्त नहीं हो जाती।

समय जटिलता:

औसत और सबसे खराब स्थिति में O(log n)

उदाहरण: मान लीजिए कि हमारे पास निम्नलिखित क्रमबद्ध संख्या की सूची है:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
यदि हमें 5 को खोजना है:


पहले पिवट (5) की जांच करते हैं।
5 पिवट के समान है, इसलिए तत्व मिल गया।

3. जंप खोज (Jump Search)

परिभाषा:
जंप खोज एक अन्य खोज तकनीक है, जो क्रमबद्ध डेटा पर काम करती है। यह डेटा को कूदकर चेक करती है, फिर आवश्यक भाग में रेखीय खोज का उपयोग करती है।

कैसे कार्य करता है:

  • सबसे पहले, एक कूद की लंबाई निर्धारित की जाती है (आमतौर पर √n)।
  • सूची के तत्वों को कूदकर चेक किया जाता है जब तक कि वांछित तत्व का स्थान निर्धारित नहीं हो जाता।
  • फिर उस भाग में रेखीय खोज की जाती है।

समय जटिलता:

O(√n)
उदाहरण: मान लीजिए कि हमारे पास निम्नलिखित क्रमबद्ध संख्या की सूची है:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
यदि हमें 7 को खोजना है:

हम कूदते हैं (1, 2, 3, 4) तक।
फिर 6 की जांच करते हैं और रेखीय खोज करते हैं (7 तक)।

4. इंटरपोलेशन खोज (Interpolation Search)

परिभाषा:
इंटरपोलेशन खोज एक खोज तकनीक है जो बाइनरी खोज की तरह काम करती है, लेकिन इसे डेटा के वितरण का अनुमान लगाने के लिए उपयोग किया जाता है।

कैसे कार्य करता है:

  • पहले, पिवट के अनुमानित स्थान की गणना की जाती है, जो वांछित मान के स्थान पर आधारित होती है।
  • यदि पिवट तत्व वांछित तत्व से छोटा है, तो ऊँची आधे में खोज की जाती है, और यदि बड़ा है, तो निम्न आधे में खोज की जाती है।

समय जटिलता:

औसत स्थिति में O(log log n)
उदाहरण: मान लीजिए कि हमारे पास निम्नलिखित क्रमबद्ध संख्या की सूची है:
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
यदि हमें 70 को खोजना है, तो इंटरपोलेशन खोज 70 के अनुमानित स्थान पर जाएगी और सही पिवट का चयन करेगी।

5. फिबोनाच्ची खोज (Fibonacci Search)

परिभाषा:
फिबोनाच्ची खोज एक अन्य खोज तकनीक है जो बाइनरी खोज के समान होती है, लेकिन इसे फिबोनाच्ची अनुक्रम का उपयोग करके विभाजन किया जाता है।

कैसे कार्य करता है:

  • पहले, फिबोनाच्ची संख्या की गणना की जाती है जो सूची की लंबाई के समान होती है।
  • फिर इसे पिवट के रूप में उपयोग किया जाता है और उसी तरह खोज की जाती है जैसे बाइनरी खोज में होती है।

समय जटिलता:

O(log n)
उदाहरण: मान लीजिए कि हमारे पास निम्नलिखित क्रमबद्ध संख्या की सूची है:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
यदि हमें 13 को खोजना है, तो फिबोनाच्ची अनुक्रम का उपयोग करते हुए, यह पिवट का चयन करेगा और उसकी तुलना करेगा।