Autor | Zpráva | ||
---|---|---|---|
peta Profil |
#1 · Zasláno: 6. 3. 2013, 11:24:48
http://peter-mlich.wz.cz/sorting.htm
Mi tam vychazi, ze 2 metody jsou rychlejsi nez nativni FF serazovani. konkretne Quick a Slevani. Proc? Mam tam neco spatne? Snazil jsem se, aby to melo co nejvic stejne podminky. Vystup je mozny Graf, Cisla nebo jednorazovy Rozdily. |
||
_es Profil |
#2 · Zasláno: 6. 3. 2013, 11:39:35
peta:
Nepodarilo sa mi sa v tvojom chaotickom kóde zorientovať. „2 metody jsou rychlejsi nez nativni FF serazovani. konkretne Quick a Slevani. Proc?“ No možno aj sú - možno len niekedy - je v tom problém? Záleží aj na počte prvkov, náhodnosti rozmiestnenia prvkov pred zoradením a pod. |
||
peta Profil |
#3 · Zasláno: 6. 3. 2013, 12:27:20
Mno, vyberes ze selectu algoritmus, kliknes start. Pak je mozne zobrazit vstup a vystup bud jako graf, cisla a nebo rozdily.
Pokud koukas do js kodu, tak od zacatku jsou sortovaci algoritmy a na konci je funkce, ktera resi to ostatni, jako zobrazeni a tak. A je tam pole s nazvy algoritmu, poradi by melo odpovidat select prvku. Ten Quick funguje tak, ze si najde min, max hodnotu, spocita hranicni mez a podle ni pak roztridi data na mensi nez mez, vetsi nez mez. Druha cast algoritmu pak uklada dalsi intervaly [a,b] pro dalsi vypocty. Pouziva k tomu pole meze[1] nebo meze[2] (sudy, lichy pruchod cyklem). Vzdycky jedno pole pouziva pro vypocet a do druheho zapisuje nove hodnoty. 1 2 4 5 3 7 6 min = 1 max = 7 min + (max-min / 2) = 1 + 6/2 = 4 <4: 1 2 4 3 -> pocet = 4 = nova mez >4: 5 7 6 (ale algoritmus v programu to zapisuje od konce, protoze se predem nevi, kolik tech prvku bude) 1 2 4 5 3 7 6 1 2 4 3 | 5 7 6 1 2 4 5 3 7 6 1 2 4 5 | 3 7 | 6 |
||
_es Profil |
#4 · Zasláno: 6. 3. 2013, 12:40:50
peta:
No ale princípy zoraďovania si každý ľahko nájde. Z tvojho odkazu ti ťažko niekto niečo poradí. Aká je množina počiatočných prvkov, ako sú na začiatku zoradené a pod.? A asi nikto nebude podrobne študovať hentaký zdrojový kód. |
||
peta Profil |
#5 · Zasláno: 6. 3. 2013, 15:45:02
_es:
Tam je script, ktery vygeneruje 10.000 hodnot. Zamicha je. Pokazdem spusteni je to jinak, ale ty casy jsou vicemene podobne. Nejvic se casy lisi pri prvnim spusteni algoritmu. Pak uz to ma FF nejak optimalizovane a po tretim vyklikani uz se nemeni. Netvrdim, ze to nekdo musi studovat, prochazet. Jen mi to prijde podivne. Je mozne, ze FF nepouziva nejlepsi algoritmus z dobreho duvodu, treba zachovani poradi pro stejne prvky a pod (ted si nejsem jisty, jestli to slevani udrzi nebo zmeni, uz je to dlouho, co jsem se tim zabyval podrobne, ted jsem to jen spravil a zprovoznil). Nebo ho nema optimalizovany. Ocekavam, ze pokud nekdo tohle vi, tak mi to rekne. Samotne serazeni javascriptem tam provadim funkcemi sortCondition a sortJs, na nich nenajds vubec nic zvlastniho. Jen cas pro jejich vykonani se dost lisi. function sortCondition(a,b) { return a - b; } function sortJs(cond) { arr[1].sort(cond); return 1; } |
||
Časová prodleva: 11 let
|
0