일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 효묘블로그
- python강좌
- 머신러닝 강의
- 인공지능
- acmicpc.net
- 파이썬강의
- 딥러닝
- supervised learning
- java
- 백준 알고리즘
- JAVA강좌
- unsupervised learning
- 자바시작하기
- c언어 오목
- 비지도학습
- feature scaling
- 지도학습
- 딥러닝공부
- C언어
- 자바강좌
- Python강의
- 비용함수
- 선형회귀
- Gradient Descent
- 머신러닝 강좌
- 머신러닝공부
- 자바
- 파이썬강좌
- 머신러닝
- 경사하강법
Archives
- Today
- Total
컴공과컴맹효묘의블로그
C언어 실행 시간 측정하는 clock함수 본문
반응형
이번에 알고리즘을 공부하려고 하는데 책의 도입부분에서 알고리즘의 시간을 측정할 수 있는 방법을 알려주었다.
실행시간을 측정하는 아이디어는 프로그램(알고리즘)을 실행하기 전의 시간을 측정하고, 실행한 후의 시간을 한번 더 측정해서 측정된 수 시간의 차를 계산하는 것이다.
[헤더파일]
일단 clock()함수를 사용하려면 time.h 를 인클루드 해야한다.
[함수 설명]
clock()함수는 호출되었을때 밀리세컨드 단위로 시스템 시각을 반환한다.
+밀리세컨드(ms, millisecond)란?
밀리세컨드는 1초(sec)를 1000등분으로 쪼갠 시간을 뜻한다. 따라서 1초는 1000밀리세컨드가 된다.
[주요 상수]
CLOCKS_PER_SEC은 time.h에 정의되어있다.
#define CLOCKS_PER_SEC 1000
[일반 적인 사용법]
사용법은 clocks_t 자료형으로 start와 finish변수들을 선언하고, 알고리즘의 시작직전과 종료직후에 clock()으로 받으면 된다.
clock_t start, finish;
double duration;
start = clock(); // 시작지점 시간
//Algorithm...
//...
//...
finish = clock(); // 종료지점 시간
duration = (double)(finish-start)/CLOCKS_PER_SEC; // (종료지점 시간 - 시작지점 시간)/1000
printf("%f초 입니다.",duration);
[예제 적용]
다음은 하노이탑 알고리즘을 실행시켰을 때 얼마나 시간이 걸리는지 알아보는 코드이다. 초보자에겐 하노이탑 알고리즘은 어려울 수 있으니 예제로만 참고하길 바랍니다.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
static int move = 0;
void hanoi(int n, char a, char b, char c){
if(n==1){
move++;
//printf("%d %d\n",a,c);
}else{
hanoi(n-1,a,c,b);
move++;
//printf("%d %d\n",a,c);
hanoi(n-1,b,a,c);
}
}
int sqr(int k){
if(k==1)
return 2;
else
return sqr(k-1)*2;
}
int main(){
int N;
clock_t finish, start;
double duration;
char a = 1, b = 2, c = 3;
scanf("%d",&N);
printf("%d\n",sqr(N)-1);
start = clock();
hanoi(N,a,b,c);
finish = clock();
duration = (double)(finish-start)/CLOCKS_PER_SEC;
printf("걸린 시간 : %lf",duration);
return 0;
}
반응형
'컴퓨터 > C언어' 카테고리의 다른 글
C++ Linked List로 Stack 구현해보기(그림설명) (0) | 2020.04.23 |
---|---|
C언어로 할만한 간단한 (게임)프로젝트 추천(초보자) (1) | 2020.02.16 |
c언어로 게임을, c언어 좌표계 gotoxy()함수 (0) | 2019.10.01 |
C언어 포인터와 배열에 대한 쉬운 설명 (0) | 2019.08.17 |
C언어 포인터 개념 쉬운 설명 (0) | 2019.06.12 |
Comments