Algorithms MCQ Quiz in हिन्दी - Objective Question with Answer for Algorithms - मुफ्त [PDF] डाउनलोड करें
Last updated on May 5, 2025
Latest Algorithms MCQ Objective Questions
Algorithms Question 1:
निम्न सूची में इनसर्शन सॉर्ट उपयोग करने पर पास 1 में कितने स्वैप करने पड़ेंगे?
9 | 8 | 14 | 2 | -8 | 5 |
Answer (Detailed Solution Below)
Algorithms Question 1 Detailed Solution
सही उत्तर: विकल्प 2 है।
Key Points
संप्रत्यय:
इनसर्शन सॉर्ट में, पहले पास (पास 1) में दूसरे अवयव की तुलना पहले अवयव से की जाती है और यदि आवश्यक हो तो उसे सही क्रम में रखने के लिए स्वैप किया जाता है।
दी गई सूची है:
[9, 8, 14, 2, -8, 5]
पास 1:
केवल पहले दो अवयवों पर विचार किया जाता है: 9 और 8
चूँकि 8 < 9, एक स्वैप की आवश्यकता है।
स्वैप के बाद: [8, 9, 14, 2, -8, 5]
पास 1 में स्वैप की संख्या: 1
अंतिम उत्तर: 1
Algorithms Question 2:
यदि हम आरोही क्रम में तत्वों को क्रमबद्ध कर रहे हैं, तो बबल सॉर्ट का उपयोग करके पास 2 के बाद परिणाम क्या होगा?
Answer (Detailed Solution Below)
Algorithms Question 2 Detailed Solution
सही उत्तर विकल्प 2 है।
Key Points प्रारंभिक सरणी:
7, 19, 18, 9, 23, 51, 12, 54, 73
पास 1:
7 और 19 की तुलना करें: कोई स्वैप नहीं (7 < 19)
19 और 18 की तुलना करें: स्वैप → 7, 18, 19, 9, 23, 51, 12, 54, 73
19 और 9 की तुलना करें: स्वैप → 7, 18, 9, 19, 23, 51, 12, 54, 73
19 और 23 की तुलना करें: कोई स्वैप नहीं (19 < 23)
23 और 51 की तुलना करें: कोई स्वैप नहीं (23 < 51)
51 और 12 की तुलना करें: स्वैप → 7, 18, 9, 19, 23, 12, 51, 54, 73
51 और 54 की तुलना करें: कोई स्वैप नहीं (51 < 54)
54 और 73 की तुलना करें: कोई स्वैप नहीं (54 < 73)
पास 1 के बाद:
7, 18, 9, 19, 23, 12, 51, 54, 73
पास 2:
7 और 18 की तुलना करें: कोई स्वैप नहीं (7 < 18)
18 और 9 की तुलना करें: स्वैप → 7, 9, 18, 19, 23, 12, 51, 54, 73
18 और 19 की तुलना करें: कोई स्वैप नहीं (18 < 19)
19 और 23 की तुलना करें: कोई स्वैप नहीं (19 < 23)
23 और 12 की तुलना करें: स्वैप → 7, 9, 18, 19, 12, 23, 51, 54, 73
23 और 51 की तुलना करें: कोई स्वैप नहीं (23 < 51)
51 और 54 की तुलना करें: कोई स्वैप नहीं (51 < 54)
(54 और 73 की फिर से तुलना करने की आवश्यकता नहीं है, क्योंकि सबसे बड़े तत्व प्रत्येक पास में पहले से ही अंत में रखे जा रहे हैं)
पास 2 के बाद:
7, 9, 18, 19, 12, 23, 51, 54, 73
विकल्पों से मिलान:
विकल्प 1: 7, 18, 19, 9, 23, 12, 51, 54, 73 → गलत (यह पास 1 के बाद है)
विकल्प 2: 7, 9, 18, 19, 12, 23, 51, 54, 73 → सही (हमारे पास 2 परिणाम से मेल खाता है)
विकल्प 3: 7, 9, 19, 18, 12, 23, 51, 54, 73 → गलत (18 और 19 क्रम से बाहर हैं)
विकल्प 4: 7, 9, 18, 19, 23, 51, 12, 54, 73 → गलत (12 सही स्थिति में नहीं है)
अंतिम उत्तर:
विकल्प 2) 7, 9, 18, 19, 12, 23, 51, 54, 73 पास 2 के बाद सही परिणाम है।
Additional Information
- बबल सॉर्ट की औसत और सबसे खराब स्थिति में समय जटिलता O(n^2) होती है।
- अपने खराब प्रदर्शन के कारण यह बड़े डेटा सेट के लिए उपयुक्त नहीं है।
- हालांकि, इसे समझना और लागू करना सरल है।
- बबल सॉर्ट एक स्थिर क्रमबद्ध एल्गोरिथम है, जिसका अर्थ है कि यह समान तत्वों के सापेक्ष क्रम को बनाए रखता है।
Algorithms Question 3:
लिनियर सर्च में 'n' तत्वों से किसी तत्व की सर्च के लिए न्यूनतम कितनी तुलनाएँ आवश्यक हो सकती हैं?
Answer (Detailed Solution Below)
Algorithms Question 3 Detailed Solution
सही उत्तर 1 है।
Key Points
- लिनियर सर्च एक सरल सर्च एल्गोरिथम है जो सूची में प्रत्येक तत्व को क्रमिक रूप से तब तक जाँचता है जब तक कि वांछित तत्व नहीं मिल जाता या सूची समाप्त नहीं हो जाती।
- लिनियर सर्च का उपयोग करके 'n' तत्वों की सूची में किसी तत्व को सर्च करने के लिए आवश्यक तुलनाओं की न्यूनतम संख्या 1 है यदि सर्च करने वाला तत्व पहले स्थान पर है।
- सबसे खराब स्थिति में, तत्व नहीं मिलता है या अंतिम तत्व होता है, जिसके लिए 'n' तुलनाएँ आवश्यक होती हैं।
- लिनियर सर्च के लिए डेटा को क्रमबद्ध करने की आवश्यकता नहीं होती है।
- यह एल्गोरिथम छोटे डेटासेट के लिए या जब सूची असंरचित हो, सबसे उपयुक्त है।
Additional Information
- लिनियर सर्च की समय जटिलता सबसे खराब स्थिति में O(n) है, जहाँ 'n' सूची में तत्वों की संख्या है।
- लिनियर सर्च को लागू करना आसान है लेकिन बाइनरी सर्च जैसे अन्य सर्च एल्गोरिदम की तुलना में बड़े डेटासेट के लिए कुशल नहीं है।
- लिनियर सर्च का उपयोग सरणियों और लिंक्ड सूचियों दोनों पर किया जा सकता है।
- इस एल्गोरिथम को अतिरिक्त मेमोरी स्थान की आवश्यकता नहीं होती है, जिससे यह एक स्थान-कुशल सर्च विधि बन जाती है।
Algorithms Question 4:
निम्नलिखित को उनकी समय जटिलता के आरोही क्रम में व्यवस्थित करें।
(A) लीनियर सर्च की सबसे खराब स्थिति
(B) बाइनरी सर्च की सबसे अच्छा स्थिति
(C) बाइनरी सर्च की सबसे खराब स्थिति
(D) बबल सॉर्ट की सबसे खराब स्थिति
नीचे दिए गए विकल्पों में से सही क्रम चुनें:
Answer (Detailed Solution Below)
Algorithms Question 4 Detailed Solution
सही उत्तर विकल्प 4 है।
Key Points
हमें चार परिदृश्य दिए गए हैं और हमें उन्हें उनकी समय जटिलता के बढ़ते क्रम में व्यवस्थित करने की आवश्यकता है (यानी, सबसे तेज़ से सबसे धीमे)।
समय जटिलताएँ:
- (A) रैखिक खोज का सबसे खराब स्थिति:
O(n)
- (B) बाइनरी खोज का सबसे अच्छा स्थिति:
O(1)
- (C) बाइनरी खोज का सबसे खराब स्थिति:
O(log n)
- (D) बबल सॉर्ट का सबसे खराब स्थिति:
O(n²)
बढ़ते क्रम में व्यवस्थित करना:
- (B) बाइनरी खोज का सबसे अच्छा स्थिति –
O(1)
- (C) बाइनरी खोज का सबसे खराब स्थिति –
O(log n)
- (A) रैखिक खोज का सबसे खराब स्थिति –
O(n)
- (D) बबल सॉर्ट का सबसे खराब स्थिति –
O(n²)
सही क्रम: (B), (C), (A), (D)
अतः, सही उत्तर है: विकल्प 4
Algorithms Question 5:
सही कथनों का चयन करें।
(A) बाइनरी सर्च के लिए, सभी तत्वों को क्रमबद्ध करना होगा।
(B) लीनियर सर्च के लिए, सभी तत्वों को क्रमबद्ध करना होगा।
(C) सबसे खराब स्थिति में लीनियर सर्च बाइनरी सर्च की सबसे खराब स्थिति की तुलना में कम समय लेती है।
(D) लीनियर सर्च हमेशा तेज परिणाम देती है चाहे तत्व क्रमबद्ध हों या नहीं।
नीचे दिए गए विकल्पों में से सही उत्तर चुनें:
Answer (Detailed Solution Below)
Algorithms Question 5 Detailed Solution
सही उत्तर विकल्प 1 है।
- (A) बाइनरी सर्च के लिए, सभी तत्वों को क्रमबद्ध करना होगा।
- बाइनरी सर्च एक सर्च एल्गोरिथम है जो एक क्रमबद्ध सरणी पर काम करता है। यह सरणी को दो हिस्सों में विभाजित करता है और प्रत्येक चरण में सरणी के एक हिस्से को समाप्त करता है, जिससे सर्च प्रक्रिया अधिक कुशल हो जाती है।
- (B) लीनियर सर्च के लिए, सभी तत्वों को क्रमबद्ध करने की आवश्यकता नहीं होती है।
- लीनियर सर्च एक सरल सर्च एल्गोरिथम है जो सूची में प्रत्येक तत्व को क्रमिक रूप से तब तक जांचता है जब तक कि वांछित तत्व नहीं मिल जाता या सूची समाप्त नहीं हो जाती। तत्वों को क्रमबद्ध करने की आवश्यकता नहीं है।
- (C) सबसे खराब स्थिति में लीनियर सर्च बाइनरी सर्च की सबसे खराब स्थिति की तुलना में अधिक समय लेती है।
- सबसे खराब स्थिति में, लीनियर सर्च की समय जटिलता O(n) होती है, जबकि बाइनरी सर्च की समय जटिलता O(log n) होती है, जिससे बड़े डेटासेट के लिए बाइनरी सर्च अधिक कुशल हो जाती है।
- (D) लीनियर सर्च हमेशा तेज परिणाम नहीं देती है चाहे तत्व क्रमबद्ध हों या नहीं।
- लीनियर सर्च बड़ी सूचियों के लिए धीमी हो सकती है क्योंकि यह प्रत्येक तत्व को क्रमिक रूप से जांचती है। क्रमबद्धता लीनियर सर्च के प्रदर्शन को प्रभावित नहीं करती है।
Top Algorithms MCQ Objective Questions
Algorithms Question 6:
पाइथन में निम्नलिखित में से कौन सी डेटा संरचना हैश तालिका का उपयोग करके कार्यान्वित की जाती है?
Answer (Detailed Solution Below)
Algorithms Question 6 Detailed Solution
सही विकल्प डिक्शनरी है।
संकल्पना:
हैश तालिका एक डेटा संरचना है जो डेटा को एक साहचर्य तरीके से संग्रहीत करता है जिसमें एक कुंजी(की) मान युग्म होता है और जिसमें हैश फलन से डेटा घटक का एड्रेस या सूचकांक मान उत्पन्न होता है।
इसलिए हैश-आधारित सर्चिंग और निवेशन के लिए कुंजी(की) की स्थिति का पता लगाने के लिए केवल एक कुंजी(की) की तुलना की आवश्यकता होती है, बशर्ते कि प्रत्येक घटक हैश फलन द्वारा तय की गई अपनी निर्दिष्ट स्थिति में मौजूद हो क्योंकि कुजी(की) का मान स्वयं उस सूची का सूचकांक बन जाता हैं जो डेटा संग्रहीत करता है।
पाइथन में, डिक्शनरी डेटा प्रकार डेटा मानों का एक अक्रमित संग्रह है, जिसका उपयोग हैश तालिका के कार्यान्वयन को निरुपित करने वाले मैप की तरह डेटा मानों को संग्रहीत करने के लिए किया जाता है।
डिक्शनरी की कुंजी(की) हैशिंग फलन द्वारा उत्पन्न की जाती है जो हैश फलन को प्रदान किए गए प्रत्येक अद्वितीय मान के लिए अद्वितीय परिणाम उत्पन्न करती है।
उदाहरण
dict = {'Name': 'Testbook', 'Course':'Hashing', 'Language': 'Python'}
जैसा कि दिखाया गया है, हम डिक्शनरी "dict" की सभी कुंजियों(की) को प्राप्त करने के लिए keys() विधि का उपयोग कर सकते हैं।
dict.keys()
dict_keys(['Name', 'Course', 'Language'])
Algorithms Question 7:
दी गयी सूची निम्न हैं:
सूची A: [5,12, 2, 34, 40, 32]
सूची B: [4, 7, 12, 6, 24, 18]
निम्नलिखित में से कौन-सी सूची को बबल सॉर्ट का उपयोग निचले स्वैप की आवश्यकता होती है?
Answer (Detailed Solution Below)
Algorithms Question 7 Detailed Solution
बबल सत्र में सबसे बड़े तत्व को प्रत्येक पास में अंतिम दाएँ स्थान में स्थानांतरित किया जाना चाहिए।
इसलिए स्वैप के संख्या की गणना करने के लिए आपको एक विशिष्ट तत्व की तुलना में छोटे तत्व की दाएँ पक्ष से गणना करने की आवश्यकता है, उनमें से सभी को स्वैप के संख्या को ज्ञात करने के लिए जोड़िए।
जब एक छोटा तत्व दाएँ पक्ष पर पाया जाता है, तो बबल सत्र में स्वैपिंग की जाती है।
सूची A के लिए - [5,12,2,34,40,32] -
5 के लिए दाएँ पक्ष से सबसे छोटा तत्व- 1 (2)
12 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (2)
2 के लिए दाएँ पक्ष से सबसे छोटा तत्व- 0
34 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (32) , 40 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (32)
32 अंतिम तत्व है, इसलिए उसकी जाँच करने की कोई आवश्यकता नहीं है। स्वैप की कुल संख्या - 1+1+1+1 = 4 स्वैप की आवश्यकता सूची A के लिए होती है।
सूची B के लिए - [4,7,12,6,24,18]-
4 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 0 7 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (6)
12 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (6) 6 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 0
24 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (18)
18 अंतिम तत्व है, इसलिए उसकी जाँच करने की कोई आवश्यकता नहीं है।
स्वैपों की कुल संख्या 1+1+1 = 3 सूची B के लिए आवश्यक स्वैप
अतः सूची B को बबल सॉर्ट का उपयोग करके न्यूनतम स्वैप की आवश्यकता है।
विकल्प 2 सही उत्तर है।
Algorithms Question 8:
निम्नलिखित में से किस मामले में बाइनरी सर्च को लागू किया जा सकता है?
Answer (Detailed Solution Below)
Algorithms Question 8 Detailed Solution
सही विकल्प हैः वर्गीकृत घटकों के साथ एक सूची दी गई है।
संकल्पना:
बाइनरी सर्च खोजने की एक तकनीक है जो एक कुंजी(की) को तीव्रता से खोजने के लिए सूची में घटकों के क्रम का उपयोग करती है।
खोजी जाने वाली कुंजी(की) की तुलना वर्गीकृत सूची के बीच के घटक से की जाती है, इसके परिणामस्वरूप तीन में से कोई भी संभावना हो सकती है:
i) यदि मध्य स्थिति का घटक कुंजी(की) से मेल खाता है तो खोज सफल होती है।
ii) यदि मध्य स्थिति का घटक कुंजी(की) से बड़ा है तो मुख्य घटक सूची के बाएं भाग में मौजूद हो सकता है।
iii) यदि मध्य स्थान पर स्थित घटक कुंजी(की) से छोटा है, तो कुंजी घटक सूची के दाहिने हिस्से में मौजूद हो सकता है।
यह प्रक्रिया तब तक जारी रहती है जब तक कि घटकनहीं मिल जाता या सूची पूरी तरह से ट्रेस नहीं हो जाती।
इस प्रकार बाइनरी सर्च का उपयोग करने के लिए दी गई सूची को वर्गीकृत किया जाना चाहिए।
Algorithms Question 9:
निम्नलिखित में से कौन सा इनपुट चयन छँटाई (सार्ट) के लिए बेस्ट केस समय देगा?
Answer (Detailed Solution Below)
Algorithms Question 9 Detailed Solution
सही उत्तर विकल्प 4 है।
संकल्पना:
चयन छँटाई (सार्ट):
चयन छँटाई (सार्ट) कलनविधि(एल्गोरिथम) अवर्गीकृत खण्ड में से सबसे छोटे सदस्य को लगातार चुनकर और शुरुआत में (आरोही क्रम में) रखकर एक सरणी को वर्गीकृत करता है। किसी दिए गए सरणी में, विधि दो उप-सरणी रखती है।
- यह उप-सरणी है जिसे पहले छाटाँ(सॉर्ट) किया गया है।
- शेष अवर्गीकृत उपसरणी है।
स्पष्टीकरण:
यदि हमारे सरणी में n मान हैं, तो चयन छँटाई (सार्ट) में सबसे खराब स्थिति में O(n2) काल जटिलता है। अब हमारे पास उत्तम परिदृश्य में एक वर्गीकृत सरणी है, लेकिन हमें अभी भी सुनिश्चित करने के लिए इसे O(n2) बार चलाने की आवश्यकता है! नतीजतन, चयन छँटाई (सार्ट) की समय जटिलता बेस्ट और वर्स्ट मामलों में समान होती है।
- बेस्ट और वर्स्ट मामलों में चयन छँटाई (सार्ट) में समान समय लगता है अर्थात् O(n2)। तो सभी इनपुट में समान समय लगता है।
इस प्रकार सही उत्तर उपरोक्त सभी समान समय लेंगें।
Algorithms Question 10:
6 घटकों की सूची में L= [7,3,9,15,-6,11] में कुंजी(की) = 15 के लिए बाइनरी सर्च द्वारा की गई तुलनाओं/पुनरावृत्तियों की संख्या की खोज करें।
Answer (Detailed Solution Below)
Algorithms Question 10 Detailed Solution
सही विकल्प उपरोक्त में से कोई नही है।
संकल्पना:
बाइनरी सर्च खोजने की एक तकनीक है जो एक कुंजी(की) को तीव्रता से खोजने के लिए सूची में घटकों के क्रम का उपयोग करती है।
बाइनरी सर्च में,खोजी जाने वाली कुंजी(की) की तुलना वर्गीकृत सूची के बीच के घटक से की जाती है
यदि घटक मध्य स्थिति में है:
- कुंजी(की) से मेल खाता है। इस प्रकार खोज सफल होती है।
- कुंजी(की) से छोटा होता है, तो कुंजी(की) का घटक सूची के दाहिने हिस्से में मौजूद हो सकता है। इस प्रकार first=mid +1, केवल दाहिने आधे भाग को खोजने के लिए।
- कुंजी(की) से बड़ा है, तो कुंजी(की) का घटक सूची के बाएं भाग में मौजूद हो सकता है। इस प्रकार last=mid -1, केवल बाएं आधे भाग को खोजने के लिए।
उपरोक्त प्रश्न में, दी गई सूची L=[7,3,9,15,-6,11] अव्यवस्थित/अवर्गीकृत है, इसलिए दी गई सूची में बाइनरी सर्च लागू नहीं किया जा सकता है।
Algorithms Question 11:
10 तत्वों L=[2, 83, 63, 23, 96, 55, 12, 34, 24, 44] की सूची पर विचार करें: तुलना की संख्या निर्धारित करें लीनियर सर्च कीय = 12 के लिए के लिए सर्च करता है।
Answer (Detailed Solution Below)
Algorithms Question 11 Detailed Solution
सही विकल्प (1) है
संकल्पना:-
एक सरल तरीका है एक लीनियर सर्च करना, अर्थात
- arr[ ] के सबसे बाएं तत्व से शुरू करें और एक-एक करके arr[ ] की तुलना X के प्रत्येक तत्व से करें
- यदि X किसी तत्व से मेल खाता है, तो इंडेक्स लौटाएँ
- यदि X किसी भी तत्व से मेल नहीं खाता है, तो -1 लौटाएं।
उदाहरण के लिए,
L=[2, 83, 63, 23, 96, 55, 12, 34, 24, 44]
X = 12
तत्व 12 इंडेक्स 7 पर मौजूद है,
Additional Information लीनियर सर्च: - लीनियर सर्च एक अनुक्रमिक खोज विधि है जिसमें हम सूची के एक छोर से शुरू करते हैं और प्रत्येक तत्व की जांच तब तक करते हैं जब तक हमें लक्ष्य तत्व नहीं मिल जाता। यह सबसे बुनियादी सर्च एल्गोरिथम है।
बाइनरी सर्च: - बाइनरी सर्च एक ऐसा सर्च है जो सर्च किये गए तत्व से मध्य तत्व का मिलान करती है।
Algorithms Question 12:
दी गयी सूची निम्न हैं:
सूची A: [5,12, 2, 34, 40, 32]
सूची B: [4, 7, 12, 6, 24, 18]
निम्नलिखित में से कौन-सी सूची को बबल सॉर्ट का उपयोग निचले स्वैप की आवश्यकता होती है?
Answer (Detailed Solution Below)
Algorithms Question 12 Detailed Solution
बबल सत्र में सबसे बड़े तत्व को प्रत्येक पास में अंतिम दाएँ स्थान में स्थानांतरित किया जाना चाहिए।
इसलिए स्वैप के संख्या की गणना करने के लिए आपको एक विशिष्ट तत्व की तुलना में छोटे तत्व की दाएँ पक्ष से गणना करने की आवश्यकता है, उनमें से सभी को स्वैप के संख्या को ज्ञात करने के लिए जोड़िए।
जब एक छोटा तत्व दाएँ पक्ष पर पाया जाता है, तो बबल सत्र में स्वैपिंग की जाती है।
सूची A के लिए - [5,12,2,34,40,32] -
5 के लिए दाएँ पक्ष से सबसे छोटा तत्व- 1 (2)
12 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (2)
2 के लिए दाएँ पक्ष से सबसे छोटा तत्व- 0
34 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (32) , 40 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (32)
32 अंतिम तत्व है, इसलिए उसकी जाँच करने की कोई आवश्यकता नहीं है। स्वैप की कुल संख्या - 1+1+1+1 = 4 स्वैप की आवश्यकता सूची A के लिए होती है।
सूची B के लिए - [4,7,12,6,24,18]-
4 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 0 7 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (6)
12 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (6) 6 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 0
24 के लिए दाएँ पक्ष से सबसे छोटा तत्व - 1 (18)
18 अंतिम तत्व है, इसलिए उसकी जाँच करने की कोई आवश्यकता नहीं है।
स्वैपों की कुल संख्या 1+1+1 = 3 सूची B के लिए आवश्यक स्वैप
अतः सूची B को बबल सॉर्ट का उपयोग करके न्यूनतम स्वैप की आवश्यकता है।
विकल्प 2 सही उत्तर है।
Algorithms Question 13:
पाइथन में कार्यान्वित निम्नलिखित बाइनरी सर्च एल्गोरिदम पर विचार करें। वह विकल्प चुनें जो क्रमशः रिक्त स्थान(ब्लैंक) (i) और (ii) को प्रतिस्थापित कर सकता है।
def binarySearch(list, key):
first = 0
last = len(list) - 1
while(first <= last):
mid = (first + last)/2
if list[mid] == key:
return mid
elif key > list[mid]:
___________ (i)
else:
___________ (ii)
return -1
Answer (Detailed Solution Below)
Algorithms Question 13 Detailed Solution
सही विकल्प first = mid + 1 , last = mid - 1 है।
संकल्पना:
बाइनरी सर्च खोजने की एक तकनीक है जो एक कुंजी(की) को तीव्रता से खोजने के लिए सूची में घटकों के क्रम का उपयोग करती है।
खोजी जाने वाली कुंजी(की) की तुलना वर्गीकृत सूची के बीच के घटक से की जाती है, इसके परिणामस्वरूप तीन में से कोई भी संभावना हो सकती है:
यदि घटक मध्य स्थिति में है:
- कुंजी(की) से मेल खाता है। इस प्रकार खोज सफल होती है।
- कुंजी(की) से छोटा होता है, तो कुंजी(की) का घटक सूची के दाहिने हिस्से में मौजूद हो सकता है। इस प्रकार first=mid +1, केवल दाहिने आधे भाग को खोजने के लिए।
- कुंजी(की) से बड़ा है, तो कुंजी(की) का घटक सूची के बाएं भाग में मौजूद हो सकता है। इस प्रकार last=mid -1, केवल बाएं आधे भाग को खोजने के लिए।
यह विभाजन और सूची आकार में कमी तब तक जारी रहती है जब तक कि कुंजी(की) नहीं मिल जाती है या शेष सूची में केवल एक आइटम रह जाता है।
Algorithms Question 14:
पाइथन में निम्नलिखित में से कौन सी डेटा संरचना हैश तालिका का उपयोग करके कार्यान्वित की जाती है?
Answer (Detailed Solution Below)
Algorithms Question 14 Detailed Solution
सही विकल्प डिक्शनरी है।
संकल्पना:
हैश तालिका एक डेटा संरचना है जो डेटा को एक साहचर्य तरीके से संग्रहीत करता है जिसमें एक कुंजी(की) मान युग्म होता है और जिसमें हैश फलन से डेटा घटक का एड्रेस या सूचकांक मान उत्पन्न होता है।
इसलिए हैश-आधारित सर्चिंग और निवेशन के लिए कुंजी(की) की स्थिति का पता लगाने के लिए केवल एक कुंजी(की) की तुलना की आवश्यकता होती है, बशर्ते कि प्रत्येक घटक हैश फलन द्वारा तय की गई अपनी निर्दिष्ट स्थिति में मौजूद हो क्योंकि कुजी(की) का मान स्वयं उस सूची का सूचकांक बन जाता हैं जो डेटा संग्रहीत करता है।
पाइथन में, डिक्शनरी डेटा प्रकार डेटा मानों का एक अक्रमित संग्रह है, जिसका उपयोग हैश तालिका के कार्यान्वयन को निरुपित करने वाले मैप की तरह डेटा मानों को संग्रहीत करने के लिए किया जाता है।
डिक्शनरी की कुंजी(की) हैशिंग फलन द्वारा उत्पन्न की जाती है जो हैश फलन को प्रदान किए गए प्रत्येक अद्वितीय मान के लिए अद्वितीय परिणाम उत्पन्न करती है।
उदाहरण
dict = {'Name': 'Testbook', 'Course':'Hashing', 'Language': 'Python'}
जैसा कि दिखाया गया है, हम डिक्शनरी "dict" की सभी कुंजियों(की) को प्राप्त करने के लिए keys() विधि का उपयोग कर सकते हैं।
dict.keys()
dict_keys(['Name', 'Course', 'Language'])
Algorithms Question 15:
निम्न प्रोग्राम में क्या कोई एरर है।
def binarySearch(list, key):
first = 0
last = len(list) - 1 #statement 1
while(first >= last): #statement 2
mid = (first + last)/2
if list[mid] == key:
return mid #statement 3
elif key > list[mid]:
first = mid + 1
elif key < list[mid]:
last = mid - 1
return -1 #statement 4
गलत स्टेटमेंट की पहचान करें।
Answer (Detailed Solution Below)
Algorithms Question 15 Detailed Solution
सही उत्तर: विकल्प 2
स्पष्टीकरण:
- बाइनरी सर्च विधि केवल सॉर्टेड ऐरेज पर काम करती है। यह मिडिल एलिमेंट को सर्च एलिमेंट के साथ जांचती है। यदि यह मेल खाता है, तो इंडेक्स वापस कर दिया जाता है। अन्यथा, यदि सर्च एलिमेंट मिडिल एलिमेंट से कम है, तो एल्गोरिथ्म ऐरे के बाएं आधे हिस्से में प्रक्रिया को दोहराता है। अन्यथा, यह ऐरे के दाहिने आधे भाग में सर्च करता है।
- प्रोग्राम के लिए लूप तब तक चलता है जब तक पहले की वैल्यू पिछली वैल्यू से कम या उसके बराबर है। तो, एरर स्टेटमेंट 2 में है।
- स्टेटमेंट 1 में, ऐरे का अंतिम इंडेक्स निर्धारित किया जा रहा है। चूंकि ऐरे इंडेक्स 0 से शुरू होती है, अंतिम इंडेक्स ऐरे की कुल लंबाई से एक कम होती है। अत: यह स्टेटमेंट सही है।
- स्टेटमेंट 3 इंडेक्स वैल्यू देता है जहां एलिमेंट पाया जाता है, अगर यह ऐरे में मौजूद है। अतः यह कथन भी सही है।
- यदि एलिमेंट ऐरे में मौजूद नहीं है तो स्टेटमेंट 4 एक रिटर्न स्टेटमेंट है। पहला रिटर्न स्टेटमेंट एक if-block के अंदर होता है। इसलिए, यह दूसरा स्टेटमेंट, गलत स्टेटमेंट नहीं है।
महत्वपूर्ण बिंदु:
प्रोग्राम को सही ढंग से चलाने के लिए सही कथन 2 'जबकि ‘while(first <= last):’ होना चाहिए।