ठीक है, प्रश्न के अपडेट के साथ, इसलिए इरादा स्पष्ट है (न केवल औसत पाएं, लेकिन हर बार जब आप एक नया नंबर प्राप्त करते हैं तो औसत प्राप्त करें), मुझे लगता है कि एक तरीका है।
मैं ढेर की एक जोड़ी से शुरू करूंगा: अधिकतम-ढेर और एक न्यूनतम ढेर। न्यूनतम ढेर में औसत से बड़ी संख्याएं होती हैं, और औसत से अधिकतम संख्या में ढेर होता है। जब आप पहली संख्या प्राप्त करते हैं, तो यह आपका औसत है। जब आप दूसरा प्राप्त करते हैं, तो आप दोनों में से छोटे को अधिकतम-ढेर में डाल देते हैं, और दोनों में से बड़े को न्यूनतम-ढेर में डाल दिया जाता है। औसत तब न्यूनतम-ढेर पर सबसे छोटा होता है, और अधिकतम-ढेर पर सबसे बड़ा होता है।
दो ढेर के साथ, आप एक सिंगल इंटीजर के लिए स्टोरेज चाहते हैं जो इनपुट की अजीब संख्या प्राप्त करने पर वर्तमान औसत होगा। आप इसे काफी सरलता से पॉप्युलेट करेंगे: यदि आप वर्तमान में इसके साथ एक इनपुट प्राप्त करते हैं, तो आप मूल रूप से उन दो वस्तुओं (नई संख्या और पुरानी औसत) को सॉर्ट करते हैं और छोटी वस्तुओं के लिए ढेर में छोटे डालते हैं, और ढेर में बड़े होते हैं बड़ी वस्तुओं के लिए। आपका नया माध्य तब उन दो ढेर के आधारों का मतलब होगा (और आप अन्य स्टोरेज स्थान को खाली के रूप में चिह्नित करेंगे)।
जब आप उस खाली के साथ एक नया नंबर प्राप्त करते हैं, तो आप नए नंबर की तुलना मध्यस्थ से करेंगे। यदि यह ढेर के आधार के रूप में संख्याओं के बीच है, तो यह नया औसत है, और आप कर चुके हैं।अन्यथा, उस आधार से संख्या निकालें जो औसत को पकड़ लेना चाहिए (बड़ी संख्या यदि बड़ी संख्या बड़ी हो, तो छोटी हो तो छोटी हो) और उसे मध्य स्थान में रखें, फिर उस नंबर से ढेर में नया नंबर डालें।
कम से कम अगर स्मृति कार्य करता है, तो एक ढेर में निकालने/डालने से ओ (लॉग एन) होना चाहिए। मेरा मानना है कि इसमें शामिल सभी चीजें निरंतर जटिलता होनी चाहिए।
स्रोत
2011-10-20 22:35:05
जब तक डेटा सॉर्ट नहीं किया जाता है और यादृच्छिक रूप से सुलभ होता है, तो मैं निश्चित रूप से निश्चित रूप से निश्चित हूं कि आप रैखिक जटिलता के लिए आशा कर सकते हैं। –
हाय जैरी, आप सही हैं जब हमारे पास एन मानों की एक सूची है, इसलिए उस स्थिति में हमें सूची (ओ (एन लॉग एन)) को सॉर्ट करना चाहिए, लेकिन जैसा कि मैंने यहां बताया है कि समस्या थोड़ा अलग है, हमारे पास स्ट्रीम है इनपुट – csuo
आपकी टिप्पणी के लिए धन्यवाद, मैंने – csuo