Különbség a BST, hash, próbálkozások és térkép

szavazat
4

Olvastam néhány blog és bemutató próbálkozások, tördeljük, Térkép (STL) és BST. Én nagyon zavaros, melyik a jobb használni, és hol. Tudom, hogy az ilyen különbség köztük értelmetlen, mert minden végrehajtási függő. Elmondaná nekem konkrétabb és ne elfelejtette megemlíteni a komplexitás (legrosszabb, avg, és a legjobb esetben).

Előre is köszönöm...

A kérdést 16/08/2011 10:07
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
6

BST Binary keresési fa. Ezt alkalmazzák a szótárban. BST nincs korlátokhoz szerkezetét, és így egy keresési / inszerciós / deléciós O (n) legrosszabb esetben.

Térkép [STL] is egy szótár, és valójában egy piros-fekete fa [STL]. ez egy különleges fajta BST, amely korlátozásokat tartószerkezeteket, mert ez, legrosszabb esetben search / beszúrás / törlés O (logn).

tördeljük hash tábla más típusú szótárban, az az előnye a hash tábla [jó hash függvények] O (1) átlagos ideje keresés / törölni / betét. Azonban, ez a legrosszabb esetben O (n), ami történik, ha túl sok elemek ütköznek és / vagy ha a felmelegít van szükség [ha Load Balance túl magas, akkor lefoglalni egy nagyobb tömb, és felmelegít mindazokat az elemeket, hogy van].

Megpróbálja speciális vonósokra. valamennyi OP O (S) ahol S a karakterlánc hosszát. ez előnyt a többiek [ha foglalkoznak húrok], amire szüksége van, hogy olvassa el a húr, úgyhogy a komplexitás, ha Mappéldául, ha foglalkoznak húrok, valójában O (S * n * logn).

mikor kell használni?
Egy Map[vagy bármely más kiegyensúlyozott fa] kell szinte mindig jobb választás, akkor rendszeresen BST.
hash tableegy jó választás, ha átlagos rövid idő alatt, de nem érdekel, hogy néhány alkalommal lesz a teljesítmény miatti felmelegít, és bizonyos esetekben is bekövetkezhetnek.
Trieáltalában egy jó szótár szálakat.

Válaszolt 17/08/2011 08:54
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more