C언어 초보 질문
글쓴이: jhs0315 / 작성시간: 토, 2016/03/05 - 9:15오후
안녕하세요
c언어 공부 시작한 지 얼마 안된 학생입니다.
4천만명을 버블소트로 돌려서 걸리는 시간을 측정해야 하는데요,
오류를 어떻게 해결해야 할 지 모르겠습니다 ㅠㅠ
4000만을 어떻게 입력해야 하나요... 도와주세요
#include <stdio.h> #include <time.h> void main() { int i, j, tmp=0; double gap; time_t startTime=0, endTime=0; int arr[40000000]; long n=40000000L; startTime=clock(); for(j=0; j<n-1; j++) { for(i=0; i<n-1-j; i++) { if(arr[i+1]<arr[i]) { tmp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=tmp; } } } endTime=clock(); gap=(double)(endTime-startTime)/(CLOCKS_PER_SEC); printf("%f초\n", gap); }
Forums:
선언하신 배열 arr에다가 입력?
선언하신 배열 arr에다가 입력을 어떻게 하는지 질문하신 거에요?
ㄸㄹㄹ...
가지고 계신 C언어 관련 책이 있으시면 대부분 앞부분에 보시면 엄청 자세히 설명되어 있어요!!
4000만(4 x 10^7 개)을 입력하려면 일반
4000만(4 x 10^7 개)을 입력하려면 일반 배열로 안될 것 같기도 하지만 for () 루프를 돌려서 만들면 간단하게는 가능합니다.
대충 규칙을 생각하신 후 1부터 6까지 입력해야 한다면
1,2,3,4,5,6
6,5,4,3,2,1
1,3,5,2,4,6
등으로 정렬 들어가지 전에 초기화를 해주시면 되죠.
댓글 달기