Qual è la differenza principale tra un quadtree e kd-tree? Capisco che dividano i punti in molte dimensioni, ma non capisco perché dovremmo usarne uno sull'altro. Ho bisogno di una struttura che mi permetta di contare quanti punti (punti 2D) sono in una data regione. Fondamentalmente, sto cercando di rilevare gruppi di punti.Differenza tra quadtree e kd-tree
19
A
risposta
22
La differenza (algoritmicamente) è: in quadri, i dati che raggiungono un nodo sono suddivisi in celle fisse (2^d), di dimensioni uguali, mentre in kdtrees, i dati sono suddivisi in due regioni sulla base di alcuni dati di analisi (es. la mediana di alcune coordinate). I quadranti non si adattano bene alle dimensioni elevate, a causa della dipendenza esponenziale della dimensione. Anche le strutture dei dati differiscono nelle loro complessità temporali delle query.
Dato che sei interessato ai punti 2D, la struttura dei dati potrebbe funzionare per te. Gli alberi KD sono molto facili da interrogare per intervalli e sono generalmente preferiti su quadri. Ti suggerisco di usarli.
Problemi correlati
- 1. KDTree Splitting
- 2. scipy kdtree con metadati
- 3. QuadTree per rilevamento collisione 2D
- 4. La differenza tra $ * e $ @
- 5. Differenza tra $ # e $ {# @}
- 6. Differenza tra. e #
- 7. MySQL: Differenza tra ",", "e"
- 8. Differenza tra "o" e "||"
- 9. Differenza tra unwrapObservable e()
- 10. Differenza tra oggetto e *?
- 11. Differenza tra "**/* /" e "** /"?
- 12. Differenza tra jquery e $
- 13. CMake: differenza tra $ {} e "$ {}"
- 14. Differenza tra ". +" E ". +?"
- 15. VBA: Differenza tra & e +
- 16. Differenza tra numpy.logical_and e &
- 17. Differenza tra | = e^= css
- 18. Differenza tra `% in%` e `` ==
- 19. Differenza tra Dizionario e Hashtable
- 20. Differenza tra SCM e SVN
- 21. differenza tra RDLC e SSRS
- 22. Differenza tra REMOTE_HOST e REMOTE_ADDR
- 23. Differenza tra "\ n" e Environment.NewLine
- 24. Differenza tra QSharedPointer e QSharedDataPointer?
- 25. Differenza tra toFixed() e toPrecision()?
- 26. Differenza tra strncpy e memcpy?
- 27. Differenza tra crittografia e hashing
- 28. Differenza tra Assembly.CreateInstance e Activator.CreateInstance?
- 29. Differenza tra coredata e sqlite
- 30. Differenza tra Html.RenderAction e Html.Action
Vedere anche http://cstheory.stackexchange.com/questions/8470/why-would-one-ever-use-an-octree-over-a-kd-tree – naught101