프로그램의 코드실행시간을 측정하기위한 방법이다.
주로 시간복잡도의 큰요인으로 작용되는 함수,반복문등의 연산식 전후로 다음과같이 선언하여
실제 코드의 실행시간을 알 수 있다.
clock_t자료형을 사용하기위해 헤더파일 time을 include한다.(여기선c++이기떄문에 ctime으로선언)
CLOCKS_PER_SEC-> 수행시간을 초단위로 계산한다고 생각하면된다.
clock_t 자료형: 실제로는 typedef long clock_t 로 설정되어있어서 clock_t를 long으로써도된다.
duration:함수가 끝날때시간과 시작할때 시간을 빼준값을 실수형으로바꿔서 소수점단위까지의 값을 구한다.
결과값은 컴퓨터의성능에 따라 다르다.(노트북 성능이 쓰레기라 다른 컴퓨터에서 돌렸을때 값보다 많이느리다..)
#include<iostream> #include<ctime> using namespace std; { clock_t start, finish; double duration; int sum = 0; start = clock(); for (int i = 0; i < 100000000; i++) sum += i; finish = clock(); //duration=실제 코드수행시간 duration = (double)(finish - start) / CLOCKS_PER_SEC; cout << duration << endl; }
**여기서구하는건 실제 함수 동작시간이지 시간복잡도o(n)을 계산한게아니다.
시간복잡도: O(N)==O(100000000)==약1초
'알고리즘 > 실행시간 측정' 카테고리의 다른 글
피보나치수열,정렬의 실행시간분석 (2) | 2019.11.30 |
---|