हमारे पास x, y जोड़े की एक सूची है। प्रत्येक जोड़ी 2 डी स्पेस पर एक बिंदु का प्रतिनिधित्व करती है। मैं इस सूची से निकटतम बिंदु को एक विशिष्ट बिंदु xq, yq में ढूंढना चाहता हूं। इस समस्या के लिए सबसे अच्छा प्रदर्शन-महत्वपूर्ण एल्गोरिदम क्या है? अंक का लिस्पी बदलने वाला नहीं है; जिसका मतलब है कि मुझे सम्मिलन और हटाना करने की आवश्यकता नहीं है। मैं सिर्फ इस सेट में लक्ष्य xq, yq बिंदु के निकटतम पड़ोसी को ढूंढना चाहता हूं।निकटतम पड़ोसी को हल करने के लिए सर्वश्रेष्ठ प्रदर्शन-महत्वपूर्ण एल्गोरिदम
संपादित करें 1: सभी को धन्यवाद! जैसा कि स्टीफन 202 ने सही ढंग से अनुमान लगाया है, मैं इसे बार-बार करना चाहता हूं; एक समारोह की तरह। एक सूची जरूरी नहीं है (वास्तव में मुझे समझ में नहीं आता कि इसे कैसे हल किया जा सकता है? 2 कॉलम ए और वाई की प्राथमिक कुंजी वाली तालिका की तरह? यदि इससे मदद मिलती है तो मैं इसे सॉर्ट करूंगा)।
मैं एक बार सूची के आधार पर डेटा संरचना का निर्माण करूंगा, और फिर मैं फ़ंक्शन में इस जेनरेट की गई डेटा संरचना का उपयोग करूंगा (यदि यह प्रक्रिया स्वयं प्रासंगिक है)।
धन्यवाद याकूब; ऐसा लगता है कि केडी-ट्री डेटा संरचना उत्तर होने के लिए एक अच्छा उम्मीदवार है (और मुझे लगता है कि यह है। जब मैं कुछ प्रासंगिक परिणाम प्राप्त करता हूं तो मैं अपडेट करूंगा)।
संपादित करें 2: मुझे पता चला है कि, इस समस्या का नाम "निकटतम पड़ोसी" है!
संपादित करें 3: पहला शीर्षक "एल्गोरिदम की खोज में (स्थानिक-क्वेरीिंग और स्थानिक-इंडेक्सिंग के लिए) (निकटतम पड़ोसी)"; मैंने एक नया शीर्षक चुना है: "निकटतम पड़ोसी को हल करने के लिए सर्वश्रेष्ठ प्रदर्शन-महत्वपूर्ण एल्गोरिदम"। चूंकि मैं अपने शुरुआती डेटा पर सम्मिलन और हटाना ऑपरेशन नहीं करना चाहता हूं और मैं सिर्फ उनसे निकटतम एक नए बिंदु (जो डालने वाला नहीं है) चाहता हूं, मैंने केडी-पेड़ पर काम कर रहे हैं (वर्तमान में)। सभी को धन्यवाद!
क्या सूची में कुछ संरचना है (क्या यह सॉर्ट किया गया है)? क्या आप इस ऑपरेशन को दोहराना चाहते हैं, या यह एक बार किया जाएगा? यह प्रासंगिक जानकारी है जिसे लोगों को आपके प्रश्न का उत्तर देने की आवश्यकता होगी। – Stephan202
क्या आपके पास स्थानिक डेटाबेस तक पहुंच है? –
यदि सूची निरस्त नहीं है और ऑपरेशन केवल एक बार किया जाएगा, तो आपको सूची में एक रैखिक खोज करना होगा और इस प्रकार ओ (एन) से बेहतर नहीं कर सकता है। यदि आप ऑपरेशन को दोहराने जा रहे हैं, तो आपको तत्व के एक्स और वाई मानों के आधार पर सूची का उपयुक्त (पेड़) प्रतिनिधित्व करना होगा। – Stephan202