2011-08-03 6 views

उत्तर

22

cKDTreeKDTree का उप-समूह है, संभवतः सी में लागू किया गया है, इसलिए तेज़ी से।

उनमें से प्रत्येक

एक द्विआधारी trie है, जिसका नोड्स के प्रत्येक एक धुरी गठबंधन hyperrectangle प्रतिनिधित्व करता है। प्रत्येक नोड एक अक्ष निर्दिष्ट करता है और अंक के सेट को विभाजित करता है कि उस अक्ष के साथ उनका समन्वय किसी विशेष मान से अधिक या उससे कम है या नहीं।

लेकिन KDTree

भी सभी पड़ोसियों प्रश्नों का समर्थन करता है, दोनों अंकों की सरणियों के साथ और अन्य केडी-पेड़ के साथ। ये एक उचित कुशल एल्गोरिदम का उपयोग करते हैं, लेकिन केडी-पेड़ इस प्रकार की गणना के लिए सबसे अच्छी डेटा संरचना नहीं है।

+4

मुझे आश्चर्य है कि यह केडीटी डॉक्स और लेखों में अधिक प्रमुख रूप से विज्ञापित नहीं है। लगभग 20,000 अंक के लिए 3 डी में पड़ोसियों को ढूंढने के मामले में मेरे सरल (और संभवतः आम) उपयोग के मामले में, सीकेडीटी 40x तेज था। – python1981

7

एक उपयोग मामले में (लगभग 100 के अंक के साथ केडीटी में 5 डी निकटतम पड़ोसी दिखता है) सीकेडीटी क्री केडीटी से 12x तेज है।