Oggi ho ascoltato una conferenza sugli alberi di fenwick (alberi binari indicizzati) e l'insegnante dice che questo albero è una generalizzazione di alberi di intervalli e segmenti, ma le mie implementazioni di queste tre strutture di dati sono diverse. Questa affermazione è vera? e perché?Gli intervalli, i segmenti, gli alberi fenwick sono gli stessi?
risposta
Non ho mai sentito binary indexed trees chiamato una generalizzazione di nulla. Non è certamente una generalizzazione di interval trees e segment trees. Ti suggerisco di seguire i link per convincerti di questo.
di questo albero è una generalizzazione di intervallo e segmenti alberi
Se per "questo albero" tuo insegnante significava "l'albero indicizzato binario", allora si sbaglia.
ma i miei implementazioni di questa tre strutture di dati sono diversi
Naturalmente sono diversi, il vostro insegnante non ha mai detto che non dovrebbero essere. Ha appena detto che uno è una generalizzazione dell'altro (che non è vero, ma comunque). In ogni caso, le implementazioni dovrebbero essere diverse.
Cosa avrebbe lo stesso implementazione è un albero binario indicizzato e un albero Fenwick, perché quelli sono la stessa cosa.
ho visto l'articolo del topcoder e molti querys in BIT sono simili agli alberi intervallati. – Luiguis
Possono essere simili, ma ciò non significa che si possa dire che una struttura dati deriva da un'altra. Un nodo nell'albero ad intervalli contiene una metà dell'intervallo del nodo genitore, mentre un nodo in un BIT contiene un intervallo dato dalla rappresentazione binaria di un numero. – IVlad
La seguente classificazione sembra ragionevole anche se persone diverse sono destinate a mescolare questi termini.
Fenwick albero/albero binario-indicizzatolink
Quella in cui si utilizza un singolo array e operazioni sulla rappresentazione binaria per memorizzare somme prefisso (chiamati anche somme cumulative). Gli elementi possono essere membri di un monoide.
albero Catenalink
La famiglia di alberi dove ogni nodo rappresenta un sottoinsieme di un dato intervallo, dire [0, N]. Utilizzato per calcolare le operazioni associative su intervalli.
Interval alberolink
alberi dove si memorizzano intervalli effettivi. Più comunemente si prende un punto medio, si mantengono gli intervalli di intersezione sul nodo e si ripete il processo per gli intervalli a sinistra ea destra del punto.
albero Segmentolink
Simile a un albero intervallo in cui foglie sono intervalli elementari in uno spazio continuo, eventualmente, piuttosto che i nodi discreti e più alti sono i sindacati degli intervalli elementari. Utilizzato per verificare l'inclusione dei punti.
- 1. Gli alberi AVL sono malvagi?
- 2. Gli utenti 'Utente' @ '%' e 'Utente' @ 'localhost' non sono gli stessi?
- 3. Rilevare se due percorsi sono gli stessi
- 4. Perché gli alberi binari sono importanti?
- 5. Perché gli intervalli gettimeofday() sono occasionalmente negativi?
- 6. prova se due elementi sono gli stessi
- 7. StopWatch.ElapsedTicks e StopWatch.Elapsed.Ticks sono sempre gli stessi?
- 8. più numeri casuali sono gli stessi
- 9. I CAST e CONVERT sono gli stessi in SQL?
- 10. Come funzionano gli alberi Suffix?
- 11. 'let e' var 'sono gli stessi in Typescript?
- 12. Perché gli alberi di espressione sono più sicuri del riflesso?
- 13. Quali sono gli intervalli di coordinate nello spazio colore CIELAB?
- 14. Come riselezionare su un elenco di modifiche, quando gli oggetti sono gli stessi?
- 15. Gli indirizzi IP per domini e relativi sottodomini sono gli stessi?
- 16. in php e dict in python sono gli stessi?
- 17. CMAKE_SOURCE_DIR e PROJECT_SOURCE_DIR sono gli stessi in CMake?
- 18. connection.setRequestProperty e scrittura esplicita sull'urloutputstream sono gli stessi?
- 19. "Dependency Inversion" e "Design to Interfaces" sono gli stessi principi?
- 20. LocalBroadcastManager vs Context.registerReceiver(), Context.sendBroadcast (Intent) e Context.unregisterReceiver() sono gli stessi?
- 21. regex e sed di Java non sono gli stessi ...?
- 22. Visualizzazioni con gli stessi ID che ottengono gli stessi attrs al momento del ripristino
- 23. Quali sono gli intervalli IP per le zone GCE?
- 24. http_build_query con gli stessi parametri nome
- 25. Random.Next restituisce sempre gli stessi valori
- 26. Prolog, ricostruire gli alberi BST dall'elenco interno
- 27. Algoritmo Divide-And-Conquer per gli alberi
- 28. specchi multipli Maven per gli stessi repository
- 29. I documenti in Lucene devono contenere gli stessi campi?
- 30. Consolidare gli IP in intervalli in pitone
C'è una differenza tra affermare che "A è una generalizzazione di B" e "A è uguale a B." –