एक्स, वाई निर्देशांक के साथ कई मिलियन अंकों के सेट को देखते हुए, किसी स्थान से शीर्ष 1000 निकटतम बिंदुओं को तुरंत ढूंढने के लिए पसंद का एल्गोरिदम क्या है? "जल्दी" यहां घर कंप्यूटर पर लगभग 100ms का मतलब है।एल्गोरिदम?
ब्रूट फोर्स का मतलब लाखों गुणा करने और फिर उन्हें सॉर्ट करना होगा। यहां तक कि एक साधारण पायथन ऐप भी एक मिनट से भी कम समय में ऐसा कर सकता है, फिर भी यह एक इंटरैक्टिव एप्लिकेशन के लिए बहुत लंबा है।
अंक के लिए सीमांकन बॉक्स में जाना जाएगा, तो एक सरल ग्रिड में अंतरिक्ष विभाजन संभव हो जाएगा। हालांकि अंक कुछ हद तक असमान रूप से वितरित किए जाते हैं, इसलिए मुझे संदेह है कि अधिकांश ग्रिड वर्ग खाली होंगे और फिर उनमें से कुछ में अंक का एक बड़ा हिस्सा होगा।
संपादित करें: सटीक नहीं होना चाहिए, वास्तव में काफी गलत हो सकता है। यदि शीर्ष 1000 वास्तव में उदाहरण के लिए शीर्ष 2000 से कुछ यादृच्छिक बिंदु हैं तो यह एक बड़ा सौदा नहीं होगा।
संपादित करें: बिंदुओं का सेट शायद ही कभी बदलता है।
गूगल पर इस पाया क्या यह सटीक होना चाहिए, या उदाहरण के लिए यह भी ठीक है 1000 में से 900 चयनित निकटतम 1000 में से हैं? – TonJ
अंक का सेट तय है? अंक परिवर्तनों के सेट से पहले, क्या आप कई differents स्थानों के लिए निकटतम 1000 अंक प्राप्त करेंगे? –