알고리즘 정렬
- 최초 등록일
- 2009.11.30
- 최종 저작일
- 2009.07
- 9페이지/ 압축파일
- 가격 3,000원
소개글
기수정렬, 퀵정렬, 삽입정렬, 의 비교 각각의 C로 구현한 소스
목차
■ 개발 환경
■ 프로그램 개요
■ 프로그램의 핵심 부분의 구조
■ 시간 측정 분석
■ 과제에 대한 소감
본문내용
■ 개발 환경
- CPU : 인텔 모바일 M 프로세서 (1.8Ghz)
- RAM : 2Gbyte
- OS : Windows XP sp3
- 개발도구 : Visual Studio 2005
■ 프로그램 개요
기본적으로 난수를 발생시켜 input.txt , output.txt 를 생성하는 부분을 각 정렬 프로그램안에 포함을 시켰습니다. 프로그램을 실행시키면 key값의 수를 키보드로 입력받도록 작성하였습니다.
정렬에 걸리는 시간을 측정하기 위해 clock() 함수를 사용했으며, input.txt , ouput.txt 파일을 생성하는 시간은 측정에서 제외시켰습니다. 즉, 순수하게 정렬에 걸리는 시간만을 측정하여 초 단위와 1/1000초 단위로 표시하도록 하였습니다.
■ 프로그램의 핵심 부분의 구조
① 입출력 파일 생성 코드 구조
srand((unsigned)time(NULL));
printf(발생시킬 난수의 개수를 입력하세요 :);
scanf(%d, &n);
if((pf=fopen(input.txt, w)) == NULL)
{
printf(Can`t open %s\n, input.txt);
exit(0);
}
printf(랜덤하게 숫자를 발생시킵니다...\n);
for (i = 0; i < n; i++)
num[i] = (rand()*rand()) % 1000000;
for(i=0; i<n; i++)
fprintf(pf, %d\n, num[i]);
srand() 함수와 rand() 함수를 이용하여 난수를 발생시키고, 이를 input.txt 에 쓰는 부분입니다. input.txt 를 작성하기 위해 fopen 함수를 이용하고 키보드로부터 입력받은 수만큼 난수를 생성하도록 했습니다.
rand() 함수의 리턴범위가 0~32,767 이어서 999,999 까지의 수가 발생되지 않으므로 이를 해결하기 위해 rand() *rand() 를 하였습니다.
참고 자료
없음
압축파일 내 파일목록
보고서.hwp
기수정렬.zip
삽입정렬.zip
퀵정렬.zip