czas sortowania

sarsik87

Użytkownik
Dołączył
Kwiecień 21, 2007
Posty
40
A wiec przejde od razu do rzeczy....

mam na informatyke napisac program w c++ który to wczyta do tablicy jakies losowe liczby, nastpenie je posortuje i wyswietli czas jaki potrzebowal na posortowanie. Jedyne czego nie wiem w tym zadaniu to jak obliczyc czas potrzebny na posortowanie??

zgory dzieki
smile.gif

pozdrawiam
 

Zero_Cool

Użytkownik
Dołączył
Listopad 1, 2006
Posty
206
masz takie fukcje jak timeGetTime i GetSystemTime , pobierasz obecny czas i zapisujesz do jakiejs zmiennej o nazwie np start_time , to oczywiscie przed kodem wykonania Twojego sortowania , bedzie to jakas tam wartosc w milisekundach , jakie uplynely zanim komputer sie do niej dobral/wykonal
po kodzie z sortowaniem , pobierasz kolejny czas(aktualny w danym momencie) i od niego odejmujesz start_time , i juz masz elapsed_time
smile.gif
 

sarsik87

Użytkownik
Dołączył
Kwiecień 21, 2007
Posty
40
a cos wiecej o funkcji clock()??

[ Dodano: 14-11-2007, 22:52 ]
znalazlem cos takiego o funkcji clock ():

"Funkcja clock ( ) zwraca przybliżoną wartość czasu procesora zużytego przez program. Wartość ta jest wyrażona w jednostkach, których CLOCKS_PER_SEC przypada na jedną sekundę (czyli clock()/CLOCKS_PER_SEC jest czasem wyrażonym w sekundach). CLOCKS_PER_SEC zgodnie ze standardem POSIX powinno być stałą równą 1 000 000 bez względu na rzeczywistą wartość cyklu zegara. Przy tej wartości stałej CLOCKS_PER_SEC w 32-bitowych systemach po około 35 minutach funkcja zaczyna zwracać wartości ujemne. clock_t jest typem arytmetycznym (na przykład long int) zdefiniowanym w pliku time.h."

tu pisze ze CLOCKS_PER_SEC powinien sie rownac 1000000 a u mnie rowna sie tylko 1000?? cos jest nie tak??

czy aby obliczyc czas pracy programu wystarczy clock()podzielic przez CLOCKS_PER_SEC

czyli byloby to mniej wiecj tak:
czas=clock()/CLOCKS_PER_SEC;

gdzie 'czas' jest zmienna typu float ktora zawiera czas pracy programu.

czy taki sposob bedzie dobry??
 

Zero_Cool

Użytkownik
Dołączył
Listopad 1, 2006
Posty
206
prosze , jak na tacy

Kod:
#include <windows.h>

#include <iostream>



int main()



{



    DWORD stary_czas = 0;

    DWORD nowy_czas = 0;

    float czas_spania;



    stary_czas = GetTickCount();



    Sleep(5000);// tu sie wykonuje Twoje sortowanie , jest tu czas 5 sekund



    nowy_czas = GetTickCount();



    czas_spania = nowy_czas - stary_czas;



    std::cout << "Czas spania = " << czas_spania << " milisekund lub " << czas_spania/1000 << " sekund" << std::endl;



    return 0;



}

a jak chcesz miec zakroąglany czas do pelnych sekund , to czas_spania deklarujesz tylko int
 
Do góry Bottom