2013-03-14 4 views
5

एन संख्याओं की एक सरणी दी जाती है, जहां एन भी एक संख्या है। अधिकतम और साथ ही इन एन संख्याओं में से न्यूनतम को निर्धारित करने की आवश्यकता है। मुझे आवश्यक तुलनाओं को जानने की आवश्यकता है?मैरीमा और न्यूनतम सरणी

+0

सुझाव: 3 * n/2-2 तुलना पर्याप्त हैं । – Henrik

+0

@ हेनरिक क्या आप विस्तृत कर सकते हैं – user2170497

उत्तर

3

यह ओ (एन) समय में किया जा सकता है।

आप संदर्भ

+0

आप सही मजाक कर रहे हैं? निष्पक्ष दृष्टिकोण का उपयोग करना ओ (एन) –

+0

@IvayloStrandjev में किया जा सकता है: - अगर मैं गलत हूं तो कृपया मुझे सही करें लेकिन मैंने इसे 2 डी सरणी माना है। तो क्या यह 2 डी सरणी में भी संभव है i.e, ओ (एन) समय? –

+0

'एन संख्याओं की एक सरणी दी गई है, जहां एन भी एक संख्या है। अधिकतम और साथ ही इन एन संख्याओं में से न्यूनतम को निर्धारित करने की आवश्यकता है। 'मुझे यहां 2 डी का कोई उल्लेख नहीं दिख रहा है। ओपी न्यूनतम संख्याओं की तुलना में न्यूनतम संख्या और अधिकतम संख्या को खोजने के लिए एक रास्ता मांगता है –

4

यह 3*n/2-2 तुलना उपयोग किया जा सकता के लिए इस link की जाँच कर सकते हैं।

n == 2 के लिए, बस दो संख्याओं की तुलना करें। अब मान लें कि हमारे पास पहले n-2 संख्याओं के लिए न्यूनतम और अधिकतम है। शेष दो संख्याओं की तुलना करें, फिर बड़े से अधिकतम की तुलना करें और छोटे से पिछले न्यूनतम की तुलना करें।

1

एक अनुरक्षित सरणी के लिए यह लगभग 1.5n तुलना में किया जा सकता है। आप इसे सरणी के तत्वों के जोड़ों की तुलना करके और min और स्थानीय max संग्रहीत करके कर सकते हैं। आपने मिनट खोजने के लिए n/2 तुलना (स्थानीय) अधिकतम और n/2 खोजने के लिए तुलना की है। इस प्रकार, इस चरण में कुल n

अब आप अधिकतम और न्यूनतम स्थानीय लोगों पर जाएं और वैश्विक अधिकतम और न्यूनतम खोजें। यह n/2 तुलना भी लेगा। इस प्रकार n + n/2 = 1.5n

सरणी सॉर्ट किया जाता है, तो आप, किसी भी तुलना बिना इसे पा सकते हैं के बाद से सबसे कम संख्या स्थिति 0 पर है और स्थिति एन पर उच्चतम - 1.

संबंधित मुद्दे