[C++] liczenie czasu wykonania algorytmu

0

Witam, napisałem kod mający obliczać czas w jakim tablica liczb jest sortowana przez różne algorytmy .
Program tworzyłem w środowisu Visual c++ 2005 Express, jednak problem jest taki że wartość czasu (lubi ilości cyklów zegara) przed i po wykonaniu funkcji jest taka sama więc po odjęciu w ostatniej linijce otrzymuje zwykle 0 (raz na 10 wyswietla liczbe ) zamiast czasu wykonania

próbowałem też użyć time.h i clock() ale tam również otrzymywałem 0

System::DateTime currentDate = DateTime::Now;
double elapsedTicks = currentDate.Millisecond;
sortowanie();
double czas = System::DateTime::Now.Millisecond-elapsedTicks;

Dodam że sortuje duże ilości liczb (np 700) i próbowałem też
System::Now.Ticks czyli ilość taktów zegara.

Jakieś sugestie albo rady jak to inaczej zrobić?

0

Duza ilość 700? Żartujesz sobie...
Zrób dla 100k chociażby.

0

Rzeczywiście ilość elementów była zbyt niska, dzięki za pomoc :) teraz już wyświetlają się liczby tak między 50 a 100 ms, jednak czasem wyskakuje np -926, czemu taka dziwna ujemna liczba?

0

Nie mam pojęcia :)
Mozesz spróbować też używać GetTickCount() z windows.h

0

Którym sposobem wychodzą Ci ujemne wartości? Z tego co pamiętam clock_gettime czasem zwracało ujemne wartości w polu tv_nsec, googlowałem trochę za tym i znalazłem kilka powtarzających się odpowiedzi, że wartości < 0 || > 10^9 są po prostu niepoprawne, stworzyłem sobie nawet taką klasę: http://firsthost.nazwa.pl/wordpress/2009/07/30/mierzenie-czasu-w-c-unix-win32/ , wywołuje tą funkcję póki nie dostanie wartości poprawnej.
W każdym razie ciekawy temat, czy ktoś mógłby się wypowiedzieć na temat wartości ujemnych w np. tej (clock_gettime) funkcji?

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