मेरे पास एक जावास्क्रिप्ट प्रोग्राम है जिसमें मैं पूर्णांक की कई श्रेणियों का प्रबंधन करूँगा। इस संदर्भ में, एक अन्य वस्तु के संदर्भ के साथ, एक सीमा बस एक प्रारंभ और अंत मूल्य (या किसी भी समकक्ष, प्रारंभ और लंबाई मूल्य की तरह) है। श्रेणियां ओवरलैप हो सकती हैं, और समान हो सकती हैं (हालांकि संदर्भित वस्तु अलग होगी)।अलग-अलग मूल्यों की श्रेणियों को संग्रहीत करने और पुनर्प्राप्त करने के लिए मैं किस डेटा संरचना का उपयोग कर सकता हूं?
संभव आरंभ और अंत मान 0 और के बीच 4294967295 (2 - 1 या 0xFFFFFFFF
), हालांकि वहाँ कई बड़े "छेद" डोमेन है कि कोई सीमा कभी कवर किया जाएगा, यहां तक कि आंशिक रूप से कर रहे हैं। संभावनाओं के डोमेन की तुलना में अधिकतर श्रेणियां बहुत छोटी होंगी: मुझे उम्मीद है कि भारी बहुमत 2000 से अधिक लंबा होगा।
इस संरचना के लिए मेरा सबसे महत्वपूर्ण उपयोग केस उन सभी श्रेणियों को देखना होगा जो दिए गए हैं पूर्णांक मूल्य। अधिकांश समय, मुझे लगता है कि लुकअप विफल हो जाएगा (दिए गए मान वाले कोई सीमा नहीं होगी)।
अन्यथा, मुझे स्पष्ट रूप से इसमें तत्वों को जोड़ने की आवश्यकता होगी (अक्सर) और इससे तत्वों को हटाएं (शायद ही कभी)। एक बार में, मुझे भी, उन सभी श्रेणियों को ढूंढने की आवश्यकता होगी जो एक ही सीमा वाले सभी श्रेणियों की बजाय किसी दिए गए श्रेणी को ओवरलैप करते हैं।
इसके लिए मैं किस प्रकार की डेटा संरचना का उपयोग कर सकता हूं? श्रेणियों की सूची में एक रैखिक खोज अव्यवहारिक है क्योंकि लुकअप अधिकांश समय विफल रहता है; और मुझे बहुत बार लुकअप करने की ज़रूरत है।
क्या श्रेणी 0 और max_int से बंधे हैं? या इंफ से इंफ? –
एक सीमा क्या है? क्या यह बस एक '[मिनट, अधिकतम]' जोड़ी है? – kojiro
@joeframbach, 0 max_int से। – zneak