Quelles sont les différences entre les arbres de segment, les arbres d’intervalle, les arbres indexés binaires et les arbres de distance en termes de:
S'il vous plaît, ne vous contentez pas de donner des définitions.
Toutes ces structures de données sont utilisées pour résoudre différents problèmes:
Performance/consommation d'espace pour une dimension:
(k est le nombre de résultats rapportés).
Toutes les structures de données peuvent être dynamiques, en ce sens que le scénario d'utilisation inclut à la fois des modifications de données et des requêtes:
Dimensions supérieures (d> 1):
Non pas que je puisse ajouter quoi que ce soit à réponse de Lior , mais il semble que cela pourrait être fait avec un bon tableau.
k
est le nombre de résultats rapportés
| | Segment | Interval | Range | Indexed |
|--------------|--------------:|-----------:|---------------:|----------:|
|Preprocessing | n logn | n logn | n logn | n logn |
|Query | k+logn | k+logn | k+logn | logn |
|Space | n logn | n | n | n |
| | | | | |
|Insert/Delete | logn | logn | logn | logn |
d > 1
| | Segment | Interval | Range | Indexed |
|--------------|--------------:|-----------:|---------------:|----------:|
|Preprocessing | n(logn)^d | n logn | n(logn)^d | n(logn)^d |
|Query | k+(logn)^d | k+(logn)^d | k+(logn)^d | (logn)^d |
|Space | n(logn)^(d-1) | n logn | n(logn)^(d-1)) | n(logn)^d |
Ces tables sont créées dans Github Formatatted Markdown - voir Gist si vous voulez les images.