OT: slozitost razeni primym zatridovanim
Miroslav 'Mirco' Bajtos
mirco na matfyz.cz
Úterý Květen 29 11:45:33 CEST 2001
> > Dobry den,
> > kolega ma problem, potrebuje vedet, jakou slozitost ma razeni
> > zatridovanim, muzete mu nekdo pomoci?
> > Vime, ze je to lepsi nez bubble-sort (n^2) a horsi nez quick-sort
> > (n*log(n))...
> Domnivam se ze razeni zatridovanim ma stejnou (tj. n^2) slozitost
> jako bubble-sort, to ze je rychlejsi je dano tim, ze implementace
> nejspis pouziva vice pameti (takze se nepresouva tolik dat), proste
> ke jen konstatna-krat rychlejsi.
Az si myslim ze to je to co si myslim ;-), tak ano, je to O(n^2)
> Mimochodem quick-sort ma
> slozitost n*log(n) jen v prumernem pripade, vetsina implementaci
> pokud radite jiz serazenou posloupnost ma slozitost n^2 !!!:-)
Da sa to velmi jednoducho obist:
a) volit pivota nahodne (coz na prvy pohlad znie ako pekna blbost),
potom pravdepodobnost, ze to bude O(n^2) je hooodne nizka
b) volit za pivota mediana (t.j. prvok co je mensi ako polovica
pola a vacsi ako ta druha), co sa da spocitat v case asi 30*n
a potom to vyde vzdy O(n.log(n))
> Razeni se zarucenou slozitosti n*log(n) je heap-sort jestli se
> nepletu (asi zase budu muste juknout do Knutha:-).
Alebo aj napriklad MergeSort a kybel dalsich ... a mimochodom, ked ta
postupnost neni moc rozhadzana (coz obycajne neni), tak sa to da aj v case
lepsom ako O(n.log(n)). Ale to uz je fakt OT.
mirco
--
i
| Miroslav 'Mirco' Bajtos <mirco na centrum.cz> ICQ: 111299739
| Student of Charles University in Prague <http://www.cuni.cz>
:wq
Další informace o konferenci Linux