Quicksort szybkość sortowania

0

Witajcie,

Mam pytanie odnośnie quicksorta. Otóż mam zadanie policzyć czas sortownia dla tablicy 1000 elementów nieposortowanej, posortowanej i odwrotnie posortowanej. Do pomiaru czasu używam funkcji QueryPerformanceCounter i mam pytani czy możliwe jest żeby nieposortowaną tablicę szybciej sortowało niż posortowaną czy po prostu ta funkcja zwraca wartość w Hz. W sumie byłoby to logiczne jakby szybciej sortowało nie posortowaną niż posortowaną bo tak musi więcej porównań i zamian bo przenosi je i tak, ale czy dobrze myślę? Czy może szybciej sortować nieposortowana niż posortowaną? Z góry dziękuję za odpowiedź.

0

nie musi używać queryperformance countera, wystarczy, że użyjesz gettickcount. ważniejsze jest, żeby takie sortowanie powtórzyć kilkaset razy:

czaspoczatkowy = ...;
for (int i=0; i<10000000; i++)
   sortowanie_test1();
czaskoncowy = ...;
czas = (czaskoncowy-czaspoczatkowy)/10000000.0;

coś w ten deseń spróbuj

0

To tak mógłbym załatwić też ten problem clock() z ctime pewno. Ale pytanie jest nadal aktualne: czy funkcja QueryPerformanceCounter zwraca w Hz czy w ms?
A dziękuję z pomysł:)

0

Od dłuższego czasu systemy operacyjne mają funkcję zmniejszania częstotliwości procesora, gdy ten jest w stanie bezczynności. Nowe procesory mają z drugiej strony tryb turbo odpalany podczas obciążenia, gdy procesor jest jeszcze chłodny. Każda zmiana taktowania procesora podczas mierzenia prędkości generalnie sprawi, że wyniki pomiaru będą nadawać się tylko do kosza - no chyba, że jakoś będziesz mógł nasłuchiwać na te zmiany taktowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1