정렬알고리즘 도움좀 부탁드려요.ㅠ
튼튼
질문 제목 : 정렬,탐색 알고리즘10만개의 난수를 파일입출력으로 생성 후 입력받아 각 정렬 알고리즘을 함수로 정렬하고 count를 계산하여 출력질문 내용 : - 정렬 알고리즘 6가지: 버블, 선택, 삽입, 쉘, 퀵, 합병 정렬.
- 탐색 알고리즘 3가지: 순차, 이진, 보간 탐색.
p-1: 정렬 알고리즘 성능 분석(교재 9장)
a. 강의 시간에 배운 6개의 정렬 알고리즘을 함수로 작성하라(교재 참조)
(먼저 교재 9장의 예제 프로그램을 실행하여보고 이해하라)
b. 위의 각 함수가 수행중에 비교연산을 몇번 수행하는가를 셀 수 있도록 프로그램을 수정하라. 함수 내부뿐만 아니라 main()도 개선해야함. 이를 위해 전역변수를 사용하라.
c. 각 정렬 알고리즘(함수)에 대해, 10만개의 정수값을 1차원 배열에 넣고, 함수를 호출하여 정렬하고 이때 비교 연산을 몇번 하는가를 인쇄하라.
d. 보고서에는 6개의 함수가 각각 몇번의 비교 연산을 수행하는가를 기술하고, 이를 이론적인 횟수와 비교 분석하라.
p-2: 탐색 알고리즘 성능 분석(교재 11장)
a. 강의 시간에 배운 3개의 탐색 알고리즘을 함수로 작성하라.
b. 정렬된 정수값에서 원하는 키 값을 찾는 3개의 탐색 알고리즘을 함수로 작성하라(교재에 있음). p-1의 결과(정렬된 10만개의 배열)를 시험데이타로 사용하라.
이때, 비교연산 횟수를 셀 수 있도록 각 함수와 main()을 수정하라.
c. 각 탐색 알고리즘(함수)에 대해, 100개의 찾을 값(key)을 파일에서 읽어서 탐색을 100회 수행하고 평균 비교 횟수를 인쇄하라.
d. 보고서에는 3개의 함수가 각각 몇번의 비교 연산을 수행하는가를 기술하고, 이를 이론적인 횟수와 비교 분석하라.
* 참고: 시험 데이타의 준비.
- 시험 데이타로는 10만개의 난수를 사용하라. 이를 위해,
- 평균 12만개의 난수를 생성 파일에 저장하고,
- 학생마다 시험 자료값을 다르게 만들기 위해, 처음 xxxx개의 난수는 버리고, 나머지 10만개를 정렬한 값으로 사용하라. (xxxx = 각자 학번의 뒷 4자리 숫자).
- 그리고 그후 100개 정수를 탐색 키 값으로 사용한다.
학교과제인데 제가 일단 만들어 보았지만 값이 이상하게 나오네요.
일단 버블정렬과 선택정렬을 오류없이는 만들어냇는데 값이 쓰레기값인가 봅니다.
그리고 10만개의 난수를 생성하였을시에 학번뒷자리부터 가져와 배열에 출력하는게 안됩니다.
10만개의 난수중 중간부터 값이 들어가면 10만개난수만 생성하였을시에 중간값이 검색이 안되네요;
전체적인 틀은 어떻게 만들지 이해하였는데 지금 쓰레기값이 들어가는 이유를 잘 모르겟습니다.
도와주세요.ㅜ
-
악당
일단 좀 띄어쓰기를 해서 출력해보세요.