2-आयामी विमान में मेरे पास दो सेट के अंक हैं। मैं बिंदुओं की निकटतम जोड़ी को खोजना चाहता हूं जैसे कि , और बीच यूक्लिडियन की दूरी यथासंभव छोटी है। यह कितनी कुशलता से किया जा सकता है? क्या यह समय में किया जा सकता है , जहां?एस , टी एस ∈ एस टी ∈ टी एस , टी हे ( एन लॉग इन करें n ) n = | एस | + | टी |
मुझे पता है कि अगर मुझे एक भी सेट दिया जाता है , तो एक मानक डिवाइड-एंड-कॉनकॉर एल्गोरिथ्म का उपयोग करके समय , में की निकटतम जोड़ी को खोजना संभव है । हालाँकि, वह एल्गोरिथ्म दो सेटों के मामले को सामान्य नहीं करता है, क्योंकि या भीतर दो निकटतम बिंदुओं के बीच की दूरी के बीच कोई संबंध नहीं है । उन सेटों के बीच दो निकटतम बिंदुओं के बीच की दूरी।एस , एस ' ∈ एस ओ ( n लॉग इन करें n ) एस टी
मैंने सेट को -d ट्री में संग्रहीत करने के बारे में सोचा , फिर प्रत्येक , निकटतम पड़ोसी क्वेरी का उपयोग करके से में निकटतम बिंदु खोजने के लिए । हालाँकि, सबसे खराब स्थिति वाला समय समय जितना खराब हो सकता है । ऐसे परिणाम हैं जो कहते हैं कि यदि के अंक बेतरतीब ढंग से वितरित किए जाते हैं, तो प्रत्येक क्वेरी के लिए अपेक्षित रनिंग टाइम , इसलिए हम अपेक्षित रनिंग टाइम साथ एक एल्गोरिथ्म प्राप्त करेंगे यदि हम गारंटी दी गई थी कि अंक बेतरतीब ढंग से वितरित किए गए हैं - लेकिन मैं एक एल्गोरिथ्म की तलाश कर रहा हूं जो अंकों के किसी भी संग्रह के लिए काम करेगा (जरूरी नहीं कि यादृच्छिक रूप से वितरित हो)।कश्मीर रों ∈ एस टी एस ओ ( n 2 ) टी ओ ( लॉग एन ) हे ( एन लॉग इन करें n )
प्रेरणा: एक कुशल एल्गोरिथ्म इस अन्य प्रश्न के लिए उपयोगी होगा ।