पर एक पहेली मुझे कोडिंग प्रतियोगिता में puzzle
प्रश्न [related to data structure
] का सामना करना पड़ा।डेटा संरचना
पेड़ों का एक ग्रह है (असली पेड़ पेड़ डेटा संरचना नहीं !!)। इसमें अरबों या यहां तक कि लाखों पेड़ हैं। राजा कार्बन डेटिंग का उपयोग करते हुए सभी पेड़ों के आयु (वर्षों और पूर्णांक में) के औसत को खोजने का आदेश देता है। (Method does not matter.
) नोट: संख्याओं की क्रमबद्ध सूची में मध्य "मध्य संख्या" है।
प्रतिबंध:
1.
सबसे पुराने पेड़ 2000 साल पुराना होने का जाना जाता है।
2.
उनके पास एक मशीन है जो अनन्यता से + अनंत तक सीमा में पूर्णांक स्टोर कर सकती है।
3.
लेकिन ऐसे पूर्णांक की संख्या जिसे एक समय में स्मृति में संग्रहीत किया जा सकता है 1 मिलियन है।
इसलिए, एक बार जब आप अगले स्टोर को स्टोर करने के लिए 1 मिलियन पूर्णांक स्टोर करते हैं तो आपको पहले से संग्रहीत एक को हटाना होगा।
तो किसी भी तरह उन्हें पेड़ों की उम्र गिनने के दौरान मध्यस्थ का ट्रैक रखना पड़ता है।
वे यह कैसे कर सकते हैं?
मेरे दृष्टिकोण
बाहरी प्रकार का एक संस्करण का उपयोग करें हिस्सा & उन्हें फाइल में लिखने में उम्र सॉर्ट करने के लिए।
के-रास्ता विलय [भाग के लिए] लागू करें।
उपरोक्त दृष्टिकोण के साथ समस्या यह है कि इसे फ़ाइल के दो स्कैन की आवश्यकता है।
मैं एक और दृष्टिकोण जो जानकारी The oldest tree is known to be 2000 years old.
हम नहीं ले सकते हैं एक count array
[as range of ages of tree is fixed
] का उपयोग करता है के बारे में सोच सकते हैं?
मुझे जानना है क्या कोई बेहतर तरीका है?
कोई भी तरीका है जहाँ हम फ़ाइल में डाटा स्टोर करने की जरूरत नहीं है वहाँ मौजूद है? [where only main memory is sufficient?
]
यह सुनिश्चित नहीं करेगा कि इससे मदद मिलेगी: [हफमैन कोडिंग] (http://en.wikipedia.org/wiki/Huffman_coding) – lllluuukke
क्या यह गोदेल एन्कोडिंग का उपयोग करके एक स्मृति स्थान में सभी पेड़ों की उम्र को स्टोर करने के लिए धोखा दे रहा है? – Ishtar
नहीं, किसी भी बेहतर विचार की सराहना की जाती है। –