introduction searching algorithms c
C ++ में एल्गोरिदम की खोज का अवलोकन।
हम अपने रोजमर्रा के जीवन में कुछ न कुछ खोजते रहते हैं। हमारे रोजमर्रा के जीवन की तरह, एक सॉफ्टवेयर पेशेवर के रूप में, हमें अपने कंप्यूटर पर जानकारी खोजने की आवश्यकता है। सूचना पुनर्प्राप्ति को तेजी से किया जाना चाहिए क्योंकि हम अपना बहुत समय बर्बाद नहीं कर सकते हैं ताकि हम जानकारी खोज सकें।
इसलिए हमें कुछ कुशल खोज तकनीकों या एल्गोरिदम की आवश्यकता है जो कुछ समय में दी गई जानकारी को खोज सकें और उपयोगकर्ता को दे सकें ताकि उपयोगकर्ता अन्य कार्यों के साथ आगे बढ़ सके।
=> संपूर्ण C ++ ट्यूटोरियल सूची के लिए यहां जाएं।
आप क्या सीखेंगे:
खोज तकनीक
हमारे पास दो मुख्य खोज तकनीकें हैं जो अधिकतर जानकारी की खोज के लिए कार्यरत हैं।
इसमे शामिल है:
- रैखिक खोज
- द्विआधारी खोज
इस ट्यूटोरियल में, हम इन दोनों खोज तकनीकों का विस्तार से पता लगाएंगे।
रैखिक खोज
यह सबसे बुनियादी खोज तकनीक है और इसे लागू करना भी आसान है। एक रैखिक खोज में, खोज की जाने वाली कुंजी की तुलना डेटा संग्रह के प्रत्येक तत्व के साथ रैखिक रूप से की जाती है। यह तकनीक रैखिक डेटा संरचनाओं पर प्रभावी ढंग से काम करती है।
आइए हम निम्नलिखित सरणी पर विचार करें।
ऊपर सात तत्वों की सरणी है। यदि हम कुंजी = 23 खोजना चाहते हैं, तो 0 से शुरू हो रहा हैवेंतत्व, प्रत्येक तत्व की तुलना में मुख्य मूल्य होगा। एक बार जब मुख्य तत्व सरणी में तत्व के साथ मेल खाता है, तो उस विशेष स्थान को वापस कर दिया जाएगा। इस स्थिति में, 4 को वापस लौटा दिया जाएगा क्योंकि कुंजी-मान उस स्थान के मूल्य से मेल खाता है।
हमने नीचे सी ++ और जावा भाषा का उपयोग करके एक रैखिक खोज लागू की है।
C ++ कार्यान्वयन
#include #include using namespace std; int main() { int myarray(10) = {21,43,23,54,75,13,5,8,25,10}; int key,loc; cout<<'The input array is'<key; for (int i = 0; i<10; i++) { if(myarray(i) == key) { loc = i+1; break; } else loc = 0; } if(loc != 0) { cout<<'Key found at position '< आउटपुट:
विंडोज़ 10 के लिए सबसे अच्छा ssh क्लाइंट
इनपुट सरणी है
21 43 23 54 75 13 5 8 25 10
खोज की जाने वाली कुंजी दर्ज करें: 3
सरणी में दी गई कुंजी नहीं मिली
इनपुट सरणी है
21 43 23 54 75 13 5 8 25 10
खोज की जाने वाली कुंजी दर्ज करें: 75
सरणी में स्थिति 5 पर कुंजी मिली
जावा कार्यान्वयन
import java.util.*; import java.lang.*; import java.io.*; public class Main { public static void main(String() args) { int() myarray = {21,43,23,54,75,13,5,8,25,10}; int key,location=0; Scanner sc = new Scanner(System.in); System.out.println('The input array is'); for(int i=0;i<10;i++){ System.out.print(myarray(i)+' '); } System.out.println('
'); System.out.println('Enter key'); key = sc.nextInt(); for(int i = 0; i<10; i++) { if(myarray(i)==key) { location = i+1; break; } else location = 0; } if(location != 0) { System.out.println('key found at location ' + location); } else System.out.println('Key not found'); } }
आउटपुट:
इनपुट सरणी है
21 43 23 54 75 13 5 8 25 10
कुंजी दर्ज
२। ३
कुंजी 3 स्थान पर मिली
रैखिक खोज को किसी भी रेखीय डेटा संरचना पर छांटा या अनसाल्ड तत्व किया जा सकता है। लेकिन इसमें बहुत अधिक समय लगता है यदि बहुत सारे तत्व हैं और यदि कुंजी तत्व अंतिम छोर की ओर है क्योंकि प्रत्येक तत्व की तुलना कुंजी मूल्य से की जाती है।
द्विआधारी खोज
द्विआधारी खोज एक तकनीक है जो कुंजी को खोजने के लिए 'डिवाइड और जीतना' तकनीक का उपयोग करती है। यह तत्वों की एक क्रमबद्ध रैखिक सूची पर काम करता है। क्रमबद्ध सूची काम करने के लिए एक द्विआधारी खोज के लिए बुनियादी आवश्यकता है।
बाइनरी सर्च विधि में, सूची को बार-बार आधे में विभाजित किया जाता है और कुंजी तत्व को सूची के दोनों हिस्सों में तब तक खोजा जाता है जब तक कि कुंजी नहीं मिल जाती।
उदाहरण के लिए,आइए हम निम्नलिखित 10 तत्वों की क्रमबद्ध सरणी लेते हैं।

मान लें कि कुंजी = 21 को सरणी में खोजा जाना है।
सरणी के मध्य स्थान की गणना करते हैं।
मध्य = ० + ९ / २ = ४
उदाहरण के लिए,आइए हम निम्नलिखित 10 तत्वों की क्रमबद्ध सरणी लेते हैं।

की = २१
सबसे पहले, हम मुख्य मूल्य की तुलना (मध्य) तत्व के साथ करेंगे। हम पाते हैं कि तत्व का मान = 21 है।

मुफ्त youtube वीडियो कनवर्टर mp4 के लिए
इस प्रकार हम वह कुंजी = (मध्य) पाते हैं। इसलिए चाबी मिल जाती है।
की = २५

हम पहले मुख्य मूल्य की तुलना मध्य में करते हैं। तो (21)<25), we will directly search for the key in the upper half of the array.

अब फिर से हम सरणी के ऊपरी आधे भाग के लिए मध्य पाएंगे।
मध्य = ४ + ९ / २ = ६
स्थान पर मूल्य (मध्य) = २५

अब हम प्रमुख तत्व की तुलना मध्य तत्व से करते हैं। तो (25 == 25), इस प्रकार हमने स्थान (मध्य) पर कुंजी ढूंढ ली है।
हम बार-बार सरणी को विभाजित करते हैं और मध्य के साथ प्रमुख तत्व की तुलना करके, हम तय करते हैं कि किस में कुंजी की तलाश करें।
नीचे दिए गए द्विआधारी खोज के लिए C ++ और जावा कार्यान्वयन हैं।
C ++ कार्यान्वयन
#include #include using namespace std; int binarySearch(int myarray(), int beg, int end, int key) { int mid; if(end >= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) key; location = binarySearch(myarray, 0, 9, key); if(location != -1) { cout<<'Key found at location '< आउटपुट:
इनपुट सरणी है
5 8 10 13 21 23 25 43 54 75
वह कुंजी दर्ज करें जिसे खोजा जाना है: 21
स्थान 5 पर पाई गई कुंजी

जावा कार्यान्वयन
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main(String() args) { int() myarray = {5,8,10,13,21,23,25,43,54,75}; int key, location = -1; System.out.println('The input array is'); for(int i=0;i= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) आउटपुट:
इनपुट सरणी है
5 8 10 13 21 23 25 43 54 75
खोजे जाने के लिए कुंजी दर्ज करें
इक्कीस
कुंजी का स्थान 5 है
बाइनरी खोज समय और शुद्धता के संदर्भ में अधिक कुशल है। रैखिक खोज तकनीक शायद ही कभी इस्तेमाल की जाती है क्योंकि यह अधिक बोझिल और धीमी होती है। रैखिक खोज की तुलना में बाइनरी खोज बहुत तेज़ है।
कठिन परिस्थितियों से कैसे निपटा जाए
निष्कर्ष
खोज तकनीक हमें कंप्यूटर पर संग्रहीत जानकारी की खोज करने में मदद करती है ताकि उपयोगकर्ता सूचना प्रसंस्करण के अन्य कार्यों के साथ आगे बढ़ सके। रैखिक खोज तकनीक सरल और आसान है लेकिन इसका बड़े पैमाने पर उपयोग नहीं किया जाता है।
बाइनरी खोज तकनीक बहुत तेज़ और कुशल है इसलिए इसका बड़े पैमाने पर उपयोग किया जाता है।
हमारे आगामी ट्यूटोरियल में, हम विभिन्न छंटाई तकनीकों का विस्तार से पता लगाएंगे।
=> यहां परफेक्ट सी ++ ट्रेनिंग गाइड देखें।
अनुशंसित पाठ
- जावा प्रोग्रामिंग भाषा का परिचय - वीडियो ट्यूटोरियल
- Appium Studio का परिचय: मुख्य लाभ और सुविधाएँ
- एसटीएल में एल्गोरिदम
- सर्वश्रेष्ठ मुफ्त सी # ट्यूटोरियल श्रृंखला: शुरुआती के लिए अंतिम सी # गाइड
- JMeter वीडियो 1: परिचय, JMeter डाउनलोड और इंस्टॉल करें
- पायथन परिचय और स्थापना प्रक्रिया
- यूनिक्स क्या है: यूनिक्स का एक संक्षिप्त परिचय
- माइक्रो फोकस लोडरनर का परिचय - लोडरनर ट्यूटोरियल # 1 के साथ लोड परीक्षण