안녕하세요. 지금 중간고사기간이라 책에 나와있는 예제를 직접 쳐보고있습니다.
그런데 코드는 문제가 없는데 결과에 의문이 생겨서 질문드립니다.
우선 제가 따라한 코드입니다.
#include<stdio.h>
#include<time.h>
int MaxSubsequenceSum (const int A[],int N)
{
int ThisSum, MaxSum, i, j, k;
MaxSum = 0;
for (i=0;i<N;i++)
for(j=i;j<N;j++)
{
ThisSum=0;
for(k=i;k<=j;k++)
ThisSum+=A[k];
if(ThisSum>MaxSum)
MaxSum=ThisSum;
}
return MaxSum;
}
로 제가 사용할 함수를 만들었습니다.
그리고 메인 부분에서 파일 입출력으로 1000개짜리 숫자가 있는 txt파일을 불러왔습니다.
FILE *fp;
int sample2[1000];
그리고 시간 숫자를 넣을 변수
clock_t start;
clock_t end;를 지정해줬구요.
그 다음
start=clock();
{
MaxSe= MaxSubsequenceSum(sample2, j);
}
end=clock();
difference=difftime(end,start);
printf("알고리즘 1의 N=%d일 때, 소요시간은 %.6fsec\n",j,difference);
printf("알고리즘 1을 이용한 N=%d일 때의 Maximum Subsequence Sum은 %d\n\n",j,MaxSe);
로 difftime을 사용하여 소요시간과, 함수값을 나오게 설정했습니다.
그런데 문제는 여기서 발생했습니다.
1000개정도의 작은 데이터는 컴퓨터가 빨리 처리해서 늦어도 2초안에 cmd창에 결과가 나타났습니다.
그런데 cmd창에는 536.000000sec정도의 값이 나타났습니다.
제가 알기로는, 또 네이버에서 difftime, 구글에서 difftime sec을 검색해도,
다 difftime은 sec의 단위를 쓴다고 나옵니다.
그런데 왜... 결과가 나오는데 2초만에 나타났으면서 소요시간이 536sec가 걸렸다고 나오는거죠?
컴퓨터가 계산하는 sec과 보통 시간과는 다른건가요?
사실 잘 이해가 안갑니다.