Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: sortare stringuri  (Citit de 2233 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
mika17
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« : Iulie 07, 2009, 11:28:30 »

Ok problema ar suna cam asa
Se dau N siruri de caractere Unicode de lungime maxim M ,  N si M <= 1000000. Sa se sorteze crescator in functie de indicele caracterului
Mie imi vine in cap quicksort in  O (N * M * logN), sau eventual un trie , in O(N*M)
Exista ceva mai rapid ?
« Ultima modificare: Iulie 07, 2009, 11:43:57 de către Mihai Alex Ionescu » Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #1 : Iulie 07, 2009, 12:24:23 »

Sa se sorteze fiecare sir sau toate sirurile?
Daca ti se dau N stringuri de lungime maxim M atunci poti sorta cu quicksort si mai rapid cu sort() din STL. Daca trebuie sa sortezi fiecare 1....N string de lungime M, nu am idee mai rapida decat ai spus tu.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #2 : Iulie 07, 2009, 12:45:27 »

Pai oricum nu poti mai bine de O(N*M) pentru ca atat iti ia citirea datelor.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
mika17
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #3 : Iulie 07, 2009, 16:27:18 »

Sa se sorteze fiecare sir sau toate sirurile?
Daca ti se dau N stringuri de lungime maxim M atunci poti sorta cu quicksort si mai rapid cu sort() din STL. Daca trebuie sa sortezi fiecare 1....N string de lungime M, nu am idee mai rapida decat ai spus tu.

Da, toate sirurile. Pai se poate sorta mai repede decat N*M*logN? sort'u din STL scoate mai putin pt stringuri?
Adica .. nu face tot NlogN comparatii ? Si ca sa compari 2 siruri ar lua O(M).

Si m-ar interesa si ceva materiale utile si succinte despre arbori de sufixe, am gasit si eu articole (art lui Ukkonen) dar sunt mult prea mari si greoaie.
« Ultima modificare: Iulie 07, 2009, 16:32:39 de către Mihai Alex Ionescu » Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #4 : Iulie 08, 2009, 11:51:04 »

Pai tu cu un trie ai zis ca scoti O(N*M). Cum si citirea tot O(N*M) este, asta e complexitatea cea mai buna Smile (asta voia Wef sa-ti zica)
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines