मैं यह तय करने का सबसे तेज़ तरीका ढूंढ रहा हूं कि लाइन पर कोई बिंदु इस पंक्ति के उप-समूह में है या नहीं। मैं एक पूर्णांक प्वाइंट दिए गए रहा हूँ, और मैं भी एक "सूची" है या तो:कैसे एक बिंदु अंतराल के सेट के भीतर है या नहीं?
- अंक, एक पूर्णांक (3, 10, 1000, आदि)
- अंतराल का प्रतिनिधित्व करती है कि मैं 2 से प्रतिनिधित्व करते हैं पूर्णांक (2:10 2 से 10 inluded, 50:60, आदि) के सभी पूर्णांक हैं
इस उदाहरण में, यदि मेरे बिंदु का मान 5 है, तो मैं सच हो जाता हूं क्योंकि यह अंतराल में शामिल होता है , 55 के लिए भी। यदि मेरा बिंदु 1000 के बराबर है, तो मैं भी सच लौटाता हूं क्योंकि यह बिंदुओं की सूची से मेल खाता है।
मैं इस स्थिति की जांच करने के लिए एक तेज़ तरीका (रैखिक से तेज़) की तलाश में हूं, जितना संभव हो उतने पूर्णांक को कम करने के बिना (संभवतः, 1: 1000 अंतराल के लिए मैं instanciate नहीं करना चाहता 1000 पूर्णांक)। क्या यह लॉगरिदमिक समय में किया जा सकता है?
धन्यवाद
संपादित करें: क्योंकि एक बार मेरी प्रारंभिक अंतराल कार्रवाई की जाती है मैं 10k अंक
को यह परीक्षण लागू करने की आवश्यकता आप विचार कर सकते हैं कि किसी भी समय डेटा की सूची-प्रक्रिया पूर्व करने के लिए लिया, 0 के बराबर है
अंतराल ओवरलैप कर सकते हैं? मुझे यकीन नहीं है कि यह मायने रखता है, लेकिन ऐसा लगता है जैसे इसे करना चाहिए। – Almo
वे कर सकते थे, लेकिन मैं अपने डेटा को पूर्व-संसाधित कर सकता हूं ताकि वे अब और कोई समस्या न हो क्योंकि मैं एक ही अंतराल सेट का उपयोग कर रहा हूं ताकि 10k अंक – lezebulon
को संसाधित किया जा सके? – Freddy