|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2012
Messaggi: 1
|
[C] BWT, array circolari.
Ciao a tutti, il mio problema è il seguente: devo far un programmino in c che implementi la bwt, ho già fatto il classico con la matrice di rotazioni ma è abbastanza inefficiente (sprecare n^2 mi sembra troppo!!)
quindi, io ho la stringa in input, volevo confrontarla direttamente con la stringa successiva (slittata di un posto) però in c gli array non sono circolari, giusto? come posso fare?? una volta fatto questo confronto per metterle in ordine lessicografico fino ad ora ho usato il quick sort..non c'è un metodo migliore? perchè così devo fare sempre nxn confronti (2 cicli for annidati)!! forse non sono stata molto chiara.. grazie per eventuali risposte, mi scuso in anticipo se non sono nella sezione giusta o se ci sono già post a riguardo che mi sono sfuggiti!! grazie!! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
|
Ciao! Puoi usare i puntatori a carattere. Uno per l'inizio della stringa e uno per la fine. Poi scorri dal puntatore iniziale a quello finale, oppure da quello iniziale alla fine della stringa e poi dall'inizio della stringa al puntatore finale.
Per fare il confronto fra stringhe puoi usare il radix sort che ha costo O(n). La cosa migliore però è guardare le implementazioni di altri più esperti di noi, che già hanno ragionato su questo problema.
__________________
AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200 Ultima modifica di __ZERO_UNO__ : 08-09-2012 alle 13:29. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:53.


















