2009-07-01 19 views
6

मेरे पास डेटा का एक सेट है और मैं सबसे बड़ी और छोटी वस्तुओं (कई बार) ढूंढना चाहता हूं, ऐसा करने का सबसे अच्छा तरीका क्या है?डबल समाप्त प्राथमिकता कतार

आवेदन में रूचि रखने वाले किसी भी व्यक्ति के लिए, मैं विस्तार की एक स्तर विकसित कर रहा हूं और मुझे सबसे बड़ी और छोटी स्क्रीन स्पेस त्रुटि के साथ आइटम ढूंढने की ज़रूरत है, जाहिर है हर बार जब मैं किसी आइटम को उप-विभाजित/विलय करता हूं तो मुझे इसे डालना होगा कतार में, लेकिन हर बार जब कैमरा पूरे डेटासेट में परिवर्तन करता है - तो अगली बार जब तक मैं सॉर्ट करता हूं (जब यह अक्सर होता है)

उत्तर

5

आप इसका उपयोग कर सकते हैं तो किसी भी क्रमबद्ध सूची का उपयोग करना और नए आइटम जोड़ने में सबसे अच्छा हो सकता है। एक मिन-मैक्स ढेर कागज Min-Max Heaps and Generalized Priority Queues में वर्णित हैं:

doubl का एक सरल कार्यान्वयन ई समाप्त प्राथमिकता कतार प्रस्तुत किया गया है। प्रस्तावित संरचना, को न्यूनतम-अधिकतम ढेर कहा जाता है, जिसे रैखिक समय में बनाया जा सकता है; पारंपरिक ढेर के विपरीत, यह FindMin और FindMax दोनों को निरंतर समय में निष्पादित करने की अनुमति देता है; सम्मिलित करें, हटाएं, और हटाएं मैक्स ऑपरेशंस को लॉगरिदमिक समय में किया जा सकता है।

+0

आह यह सही है! – Martin

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