एन मनमानी पूर्णांक को देखते हुए, इन संख्याओं के औसत आधे औसत को कैसे प्राप्त करें? क्या कोई ओ (एन) समाधान है? यदि नहीं, तो यह साबित करना संभव है कि यह संभव नहीं है?एन संख्याओं के शीर्ष आधा औसत कैसे खोजें?
उत्तर
सबसे पहले, दिए गए सरणी के median (यह takes linear time) ढूंढें।
फिर, केवल सरणी के माध्यम से चलें और औसत से अधिक सभी तत्वों को जोड़ दें।
गणना करें कि आपने कितने तत्वों को बुलाया (M
)। यदि M < N/2
, तो इसका मतलब है कि कई तत्व जो औसत मान के बराबर हैं (अर्थात्, N/2 - M
) शीर्ष आधे से संबंधित हैं। अपने योग में जोड़ें कि कई औसत मूल्य। हमें इस जटिलता की आवश्यकता है क्योंकि हम नहीं जानते कि कितने औसत तत्व (कई हो सकते हैं) शीर्ष आधा से संबंधित हैं: यदि हम उन्हें सब लेते हैं, तो हम N/2
तत्वों से अधिक समेकित हो सकते हैं।
अब आपके पास सरणी के शीर्ष भाग का योग है। N/2
द्वारा विभाजित करें, और आप कर चुके हैं।
या यदि आप अतिरिक्त ओ (एन) पास करते हैं तो कोड सरल हो सकता है और केवल औसत के बराबर तत्वों की संख्या को गिनें। यह आपको बताता है कि औसत में कितने बराबर-द-मेडियन तत्व शामिल हैं। –
यह भी उपयोग करना आसान होगा कि औसत खोजने के लिए लगभग किसी भी एल्गोरिदम को इनपुट सूची का विभाजन ऊपरी आधा भाग में भी मिल जाए। इसलिए एक बार जब मध्यस्थ पाया जाता है तो ऊपरी हिस्से में सभी तत्व पहले से ही ज्ञात हैं। – Accipitridae
मैं इस सुझाव है:
उपयोग quicksort, कुछ धुरी का चयन करें। यह आपकी सूची को दो उपन्यास में विभाजित करेगा, जो पिवोट से छोटा है, उससे बड़ा एक। यदि छोटे sublist का आकार < = एन/2 है, औसत a1
औसत गणना करें।
यदि size == N/2 or size == N/2 -1
आप तुरंत कर रहे हैं।
यदि कुल आकार एन/2 तक बड़ा उपन्यास पुन: विभाजन नहीं करता है।
यदि आकार> एन/2 विभाजन छोटे sublist।
पूरा होने तक सभी को दोहराएं।
पीएस: आपको सॉर्ट करने की आवश्यकता नहीं है।
यह सबसे खराब स्थिति में 'ओ (एन^2)' है ... –
आप प्राथमिकता कतार का उपयोग कर सकते हैं। n
, आपने कितने तत्वों को देखा है, इसकी गणना करने के लिए तत्वों को कतार में डालें। n/2
कतार से अधिकतम तत्व एक संचयक में निकालें और औसत की गणना करें।
इस तरह के एक फाइबोनैचि ढेर के रूप में, यह आप, O(n log n)
क्रम दे देंगे के रूप में प्रविष्टि O(1)
है और निष्कर्षण O(log n)
है।
दुर्भाग्यवश ओ (एन) रनटाइम नहीं जिसे आप ढूंढ रहे थे, लेकिन पहले से ही लागू डेटा संरचना के साथ, यह बहुत समझदार सीधा कोड उत्पन्न करेगा।
* ढूँढना * अधिकतम फाइबरकासी ढेर में ओ (1) है, लेकिन * इसे हटा रहा है (इस प्रकार यह दूसरी-से-अधिकतम की अनुमति देता है एक अन्य ओ (1) में पाया जा सकता है) ओ (लॉग एन) है। यदि "डालें" और "अधिकतम हटाएं" वास्तव में एक फाइबोनैकी ढेर में ओ (1) दोनों थे, तो ओ (एन) में तुलनात्मक प्रकार करने के लिए एक का उपयोग करना संभव होगा। –
आप बिल्कुल सही हैं, क्षमा चाहते हैं, मैंने तदनुसार अपना जवाब संपादित कर लिया है। सॉर्टिंग पर उस बेवकूफ नुकीले निचले बाध्य! –
यह रैखिक समय में स्पष्ट रूप से हल करने योग्य है, यदि आप रैखिक समय में औसत पा सकते हैं। और रैखिक समय में एक औसत खोजना मुश्किल है, लेकिन संभव है। उदाहरण के लिए विकिपीडिया लेख selection algorithms पर देखें।
- 1. ओ (एन) संख्याओं के संग्रह के औसत को खोजने के लिए ओ (एन) एल्गोरिदम
- 2. एन के पूरक का नंबर कैसे खोजें?
- 3. क्या ओ (एन लॉग एन) से बेहतर संख्याओं की सूची के औसत की गणना करना संभव है?
- 4. तीन एन्क्रिप्टेड संख्याओं की औसत गणना
- 5. आधा अक्षर
- 6. जावा - 6 यादृच्छिक संख्याओं के लिए स्ट्रिंग को कैसे खोजें
- 7. औसत
- 8. कई तालिकाओं से MYSQL शीर्ष एन पंक्तियां
- 9. 5 क्रमबद्ध सरणी के औसत
- 10. पहले एन संख्याओं के सबसे बड़े विषम divisors का योग
- 11. एकाधिक तालिका वाले शीर्ष एन प्रति समूह
- 12. मेडियन एल्गोरिदम के औसत के स्पष्टीकरण
- 13. अधिकतर एन + लॉग₂ (एन) -2 तुलनाओं में सरणी में दूसरा सबसे बड़ा नंबर खोजें
- 14. MySQL: औसत के साथ औसत
- 15. वीआईएम: केवल विशिष्ट पंक्ति संख्याओं के बीच खोजें?
- 16. पोस्टग्रेएसक्यूएल टॉप एन के साथ शीर्ष एन के लिए समकक्ष: LIMIT "संबंधों के साथ"?
- 17. ओ (लॉग एन)
- 18. आप ओ (लॉग एन) और ओ (एन लॉग एन) के बीच अंतर कैसे देखते हैं?
- 19. एसक्यूएल गैर पूर्ण संख्याओं के लिए एक संख्यात्मक फ़ील्ड खोजें
- 20. अधिकतम राशि के साथ संख्याओं के बढ़ते क्रम को कैसे ढूंढें?
- 21. मुझे संख्याओं के बड़े सेट में औसत कैसे मिल सकता है?
- 22. एन संख्याओं का सबसे बड़ा और दूसरा सबसे बड़ा पता
- 23. आधा पूरा फॉर्म कैसे बचाएं
- 24. न्यूनतम, अधिकतम, औसत, औसत
- 25. शीर्ष आधे पर एक ढाल के साथ एक्सएमएल में एक ड्रायबल आयत बनाना और दूसरा आधा
- 26. औसत मैट्रिक्स कुशलतापूर्वक
- 27. औसत
- 28. किसी दिए गए रेंज में सभी संख्याओं का एक्सओआर खोजें
- 29. औसत
- 30. किसी तालिका से शीर्ष एन पंक्तियों का चयन करें
क्या प्रश्न प्रोग्रामिंग से संबंधित होना चाहिए (यानी किसी प्रोग्राम का उपयोग करके इसे हल करें)? – BoltClock
मैं donno। यदि आपके पास विधि है तो आप गणितीय सूत्र दे सकते हैं। यह सिर्फ एक साक्षात्कार सवाल है। – Seeker
यह प्रश्नों में से एक है, जहां साक्षात्कारकर्ता यह जानना चाहता है कि उम्मीदवार वास्तविक दुनिया की समस्याओं को ज्ञात एल्गोरिदम को कम कर सकता है या नहीं। एल्गोरिदम स्वयं को पढ़ने में सक्षम होने से अक्सर यह अधिक महत्वपूर्ण होता है। इसलिए, मुझे समझने में कठिनाई है कि यह प्रश्न ऑफ-विषय के रूप में क्यों बंद कर दिया गया था। – Accipitridae