게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[c언어]difftime문제입니다. 컴퓨터와 제 생각이 많이 다르네요..
게시물ID : programmer_9277짧은주소 복사하기
작성자 : 8월10일가입
추천 : 0
조회수 : 794회
댓글수 : 3개
등록시간 : 2015/04/11 20:59:52
옵션
  • 본인삭제금지
안녕하세요. 지금 중간고사기간이라 책에 나와있는 예제를 직접 쳐보고있습니다.
그런데 코드는 문제가 없는데 결과에 의문이 생겨서 질문드립니다.
 
우선 제가 따라한 코드입니다.
#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과 보통 시간과는 다른건가요?
사실 잘 이해가 안갑니다.
123.jpg

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호