कार्य
एन नंबर दिए गए हैं। अनुक्रम में दूसरा सबसे बड़ा तत्व खोजें।
यह समस्या दो व्याख्याओं की अनुमति देती है।
उदाहरण के लिए, यदि हमें संख्याओं का एक समूह दिया गया है:
\(10\ 15\ 20\ 35\ 14\ 35\ 10\), तो उत्तर क्या होना चाहिए ?
"दूसरा सबसे बड़ा तत्व" के तहत या केवल "दूसरी अधिकतम", को इस रूप में समझा जा सकता है:
1) वह मान जो अंतिम स्थान पर होगा यदि हम गैर-घटते क्रम में सभी मानों को व्यवस्थित (क्रमबद्ध) करते हैं (प्रत्येक अगला एक पिछले एक से अधिक या उसके बराबर है)। फिर संख्याओं के सुविचारित सेट के लिए उत्तर मान 35 होगा;
2) तत्व का मान, जो केवल अधिकतम से अधिक है। तो जवाब है 20।
यदि संख्या के सेट में केवल एक अधिकतम तत्व है (अन्य सभी कम हैं), तो दोनों व्याख्याएं समान हैं, और उत्तर दोनों मामलों के लिए समान होगा, अन्यथा उत्तर अलग होगा।
पहले मामले पर विचार करें (हम एल्गोरिथम
स्यूडोकोड).
उत्तर खोजने के लिए, हम दो चरों का उपयोग करेंगे:
1) <कोड>अधिकतम1 कोड>-अधिकतम मान (पहला अधिकतम);
2)
अधिकतम2
- दूसरा अधिकतम (हमारा उत्तर)।
यदि मूल्यों की सीमा में परिवर्तन ज्ञात है, तो प्रारंभिक मूल्यों के रूप में हम एक संख्या लेते हैं जो स्पष्ट रूप से सीमा की निचली सीमा से कम है (उदाहरण के लिए,
-1000
की सीमा के साथ)
से
1000
- नंबर लें
-1001
)
यदि मानों की सीमा अज्ञात है, तो आप पहले दो इनपुट संख्याओं को चर
max1
और
max2
के प्रारंभिक मानों में लिख सकते हैं, और फिर इनकी तुलना कर सकते हैं दो चर।
<पूर्व>
इनपुट एन // संख्याओं की संख्या
इनपुट ए, बी
मैक्स 1 = ए
अधिकतम 2 = बी
अगर बी > ए, फिर
मैक्स 1 = बी
अधिकतम 2 = ए
पूर्व>
अगला, हम अन्य सभी तत्वों पर विचार करते हैं (पहले 2 पहले ही देखे जा चुके हैं, इसलिए हम तीसरे से शुरू करेंगे)
<पूर्व>
एनसी मैं के लिए 3 से एन
इनपुट ए
अगर एक > अधिकतम 1 // अधिकतम 1 से अधिक मान था
वह
max2 = max1 // पूर्व का पहला उच्च दूसरा बन जाता है
max1 = a // नया तत्व पहला अधिकतम होगा
अन्यथा
// अगला तत्व max1 से अधिक नहीं है
// इसकी तुलना अधिकतम 2 मान से की जानी चाहिए
अगर एक > अधिकतम 2
वह
max2 = a // इसे नए मान max2 के रूप में लें
// max1 इस मामले में नहीं बदलता है
सभी
सभी
केटीएसप्री>
इस एल्गोरिथम को स्वयं लागू करने का प्रयास करें।