ध्यान से अपने बाएं और दाएं को माध्यिका और तत्वों का चयन करना


14

मान लीजिए कि हमारे पास कोडर्स का एक सेट है ।S={a1,a2,a3,,aN}N

प्रत्येक की रेटिंग और स्वर्ण पदक की संख्या , वे अब तक जीते थे।RiEमैं

एक सॉफ्टवेयर कंपनी एक एप्लिकेशन विकसित करने के लिए वास्तव में तीन कोडर किराए पर लेना चाहती है।

तीन कोडर्स को काम पर रखने के लिए, उन्होंने निम्नलिखित रणनीति विकसित की:

  1. वे पहले रेटिंग के आरोही क्रम में कोडर्स की व्यवस्था करते हैं और स्वर्ण पदकों के अवरोही क्रम में।
  2. इस व्यवस्थित सूची से, वे तीन मध्य कोडर का चयन करते हैं। उदाहरण के लिए, यदि व्यवस्थित सूची वे चयन करते हैं कोडर।(a5,a2,a3,a1,a4)(a2,a3,a1)

अब हमें इस कार्य के लिए एक कार्यक्रम लिखकर कंपनी की मदद करनी होगी।

इनपुट:

पहली पंक्ति में , यानी कोडर्स की संख्या है।N

फिर दूसरी पंक्ति में th कोडर की रेटिंग है ।Rii

तीसरी पंक्ति में वें कोडर द्वारा प्राप्त स्वर्ण पदकों की संख्या शामिल है ।i

आउटपुट:

केवल एक पंक्ति प्रदर्शित करें जिसमें तीन कोडर्स द्वारा अर्जित स्वर्ण पदकों का योग है जिसे कंपनी चुनेगी।


3
इसलिए उच्च श्रेणी के कोडर हमेशा कम पदक जीतते हैं ?? यदि नहीं, तो आप वास्तव में किस क्रम का उपयोग कर रहे हैं?
जेफ ईई

जवाबों:


16

यह चयन करने की एक समस्या है वें सूची से सबसे छोटा तत्व कहा जाता एल्गोरिदम के एक वर्ग द्वारा हल चयन एल्गोरिदम । निर्धारक रेखीय समय चयन एल्गोरिदम मौजूद हैं, इसलिए आपकी समस्या को मूल अनसुलझी सूची से n / 2 , n / 2 - 1 , n / 2 + 1 वें सबसे छोटे तत्वों का चयन करके रैखिक समय में हल किया जा सकता है ।kn/2,n/21,n/2+1


6
यदि आप चाहें, तो आप मध्ययुगीन को खोजने के लिए एक बार चयन एल्गोरिदम चला सकते हैं, और फिर एक झपट्टा में क्रमशः दाएं और बाएं विभाजन में न्यूनतम और अधिकतम पा सकते हैं।
ज़ैच लैंगली

@Sid @ Zach Langley हाय क्या आप विकी पीडिया के माध्यम से छद्म कोड प्रदान कर सकते हैं। लेकिन आपको समझने में थोड़ी मुश्किल हो रही है। क्या आप कृपया छद्म कोड प्रदान कर सकते हैं!
जैक

@ जैक क्या आप जानते हैं कि क्विकॉर्ट कैसे काम करता है? यादृच्छिक चयन एल्गोरिथ्म अनिवार्य रूप से समान है, सिवाय इसके कि यह केवल प्रत्येक धुरी के एक तरफ पुनरावृत्ति करता है।
ज़च लैंगली

6
@ जैक: चयन एल्गोरिदम पर विकिपीडिया लेख (सिड के जवाब में जुड़ा हुआ) में छद्म कोड है। Google भी काम करता है।
जेफ ईई

@ सहायता :: मैंने विकी एल्गोरिथ्म (विभाजन-आधारित सामान्य चयन एल्गोरिथ्म) पढ़ा है। क्या हमें k = n / 2, k = n / 2-1, k / 2. के साथ तीन बार चुनिंदा फ़ंक्शन को कॉल करना होगा। फ़ंक्शन का चयन करते समय बाएं, दाएं का चयन करें। विभाजन फ़ंक्शन के अलावा, विभाजन इंडेक्स की वैल क्या होगी।
जैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.