Tohle mi fakt bavi :-) Tak my se tady bavime o +-365ti zaznamech ... a vy tu vytahnete 10^6 a jeste se me snazite urazet, ze nad tim nepremyslim (pokud na to tedy vubec mam :) ).
Ja chapu, ze slozitostne je to moje minimalne O(n*log(n)) a to puvodni O(n), protoze ja delam trideni (qsort), kdezto puvodni reseni dela jen 2x pruchod tim polem. Jenze pri ~400 prvcich je rozdil asi tak:
wejn@ns ~ $ ruby a.rb Velikost: 400 user system total real new: 0.000000 0.000000 0.000000 ( 0.001714) orig: 0.000000 0.000000 0.000000 ( 0.001567) user system total real new: 0.000000 0.000000 0.000000 ( 0.001742) orig: 0.010000 0.000000 0.010000 ( 0.004466) user system total real new: 0.000000 0.000000 0.000000 ( 0.001608) orig: 0.000000 0.000000 0.000000 ( 0.001983)pri pouziti nasledujiciho benchmarku, coz zajiste nehraje roli.
Az se nekdy v budoucnu rozhodnu operovat nad daty z celonarodniho scitani lidu, nebo tak neco ... tak se opravdu zamyslim nad slozitosti (a treba pujdu pouzit merge sort misto quick sortu) ... ale do te doby bych vas poprosil, abyste netahal 10^6 prvku tam, kde se jedna o stovky.