Porovnanie 5. |
Reťazce |
|
|
Pre krátke reťace (do 500 znakov) je Boyer-Mooreov algoritmus najpomaľší. Je to z dôvodu časovo náročnej prípravy pomocných tabuliek pred samotným vyhľadávaním. Pre väčšie reťazce sa začína algoritmus brute force odchyľovať od charakteristí ďalších dvoch algoritmov a je výrazne najpomaľší. |
|
|
10 |
100 |
1.000 |
10.000 |
100.000 |
brute force algoritmus |
0,2020 |
2,450 |
25,27 |
249,5 |
2520,0 |
Knuth-Morris-Prattov algoritmus |
0,2932 |
2,270 |
21,22 |
211,7 |
2129,0 |
Boyer-Mooreov algoritmus |
2,453 |
4,387 |
23,02 |
208,5 |
2079,0 |
|
|
|
Pre krátke reťace (do 500 znakov) je Boyer-Mooreov algoritmus najpomaľší. Je to z dôvodu časovo náročnej prípravy pomocných tabuliek pred samotným vyhľadávaním. Pre dlhé reťazce sú pri týchto testovacích podmienkach všetky algoritmy približne rovnako efektívne, najlepšie je na tom ale prekvapivo algoritmus brute force. |
|
|
10 |
100 |
1.000 |
10.000 |
100.000 |
brute force algoritmus |
0,1514 |
1,191 |
11,13 |
110,3 |
1109,0 |
Knuth-Morris-Prattov algoritmus |
0,2837 |
1,380 |
11,94 |
118,2 |
1195,0 |
Boyer-Mooreov algoritmus |
2,393 |
3,407 |
13,55 |
113,0 |
1127,0 |
|
|
|
Príprava pomocných tabuliek oboch dômyselnejších algoritmov ich stojí efektivitu pre krátke reťazce (do 100 znakov). Pre väčšie reťazce sa už ale ríprava začne oplácať a algoritmy nadobúdajú vyššiu efektivitu. V strednej časti vykreslenej časovej závislosti je najefektívnejší algoritmus KMP, pre veľmi dlhé reťazce sa však časovo najefektívnejším stáva BM algoritmus. |
|
|
10 |
100 |
1.000 |
10.000 |
100.000 |
brute force algoritmus |
0,0881 |
2,303 |
24,67 |
250,0 |
2493,0 |
Knuth-Morris-Prattov algoritmus |
0,4646 |
2,015 |
17,73 |
176,0 |
1769,0 |
Boyer-Mooreov algoritmus |
2,757 |
3,751 |
17,10 |
141,4 |
1407,0 |
|
|
|
Pre dlhé vzory a mohutné abecedy sa najlepšie prejavuje vykonaná príprava BM algoritmu. Pre krátke reťazce síce nie je práve kvôli nej tento algoritmus najefektívnejší, postupným zväčšovaním prehľadávaného reťazca však získava evidentne pred ostatnými algoritmami náskok. |
|
|
10 |
100 |
1.000 |
10.000 |
100.000 |
brute force algoritmus |
0,0883 |
1,164 |
11,01 |
110,9 |
1111,5 |
Knuth-Morris-Prattov algoritmus |
0,4647 |
1,506 |
11,67 |
113,8 |
1144,0 |
Boyer-Mooreov algoritmus |
2,729 |
3,051 |
6,610 |
41,10 |
398,5 |
|
|
Toto bola posledná stránka kapitoly 5., venujúcej sa vyhľadávaniu zadaného vzoru v reťazci.
|
|
|