[화일구조] 3원 다단계 합병 알고리즘 구현
페이지 정보
작성일 23-01-28 04:19
본문
Download : [화일구조] 3원 다단계 합병 알고리.hwp
1)프로그램(program]) 조건
[화일구조] 3원 다단계 합병 알고리즘 구현
4개의 레코드(정수)들이 크기순으로 정렬되게 한다. 마지막으로 250개의 런에 상대하여는 각각 내부 정렬로 런내에서
-프로그램(program]) 실행 후 input.txt, intermed.txt, output.txt파일이 생성되어야 한다.
이 결과 4개의 레코드(정수)를 가진 런이 250개 만들어지고 피보나치의 수 355를 맞추기 위해 공백 런
-output.txt에는 3원 다단계 합병으로 정렬된 정수 1000개가 들어있다아
․“input.txt“ 파일을 읽어 내부정렬된 런 250개(런1개에 레코드4개, 총 1000레코드)와 피보나치 수 355를
Download : [화일구조] 3원 다단계 합병 알고리.hwp( 29 )
-intermed.txt에는 3원 다단계 합병 과정을 보여주는 내용이 들어있다아
맞추기 위해 공백 런 105개를 생성하는 함수
가진 구조체 배열이다.
output.txt : 한줄에 정수 한 개, 정렬된 결과이기 때문에 작은 수부터 큰수 순서로 되어있다아
다.
※input, output파일을 출력 형식
레포트 > 공학,기술계열
난수 생성기(random number generator)를 이용하여 정수(0<=정수 <= 10000) 1000개를 생성하고 레코드 하나에 정수 하나를 저장한 파일을 생성하라. 이 화일을 3-원 다단계 합병 기법으로 정렬하는 프로그램을 작성해 보라. 이 프로그램에는 초기 런들을 피보나치 수로 분배하는 알고리즘이 구현되어야 한다. run[]배열은 크기를 나타내는 size변수와 레코드(정수)를 저장하는 record변수를
․동작 과정은 input.txt파일에서 1000개의 정수를 읽어 data[]배열에 저장한 후 이를 다시 run[]이라는
-input.txt에는 랜덤 넘버 제너레이터로 만든 1000개의 정수가 들어있다아
순서
-void make_run(void)
input.txt : 한줄에 정수 한 개
정수가 1000개인지를 확인할 수 있도록 각 라인에 record 1, record 2, ... 식으로 카운트를 두었다. 여기서는 런의 수가 15보다 큰 피보나치 수를 사용하고 메인 메모리에는 4개의 레코드를 유지할 수 있다고 가정하라. program의 출력은 앞에서 지시한 명세대로 올바르게 작동한다는 것을 증명할 수 있도록 개인적인 출력 형식을 만들어 사용하라.
난수 생성기를 이용하여 1000개의 정수를 만들고 이를 input.txt라는 파일에 출력하여 생성하는 함수
![[화일구조] 3원 다단계 합병 알고리-5811_01.jpg](https://sales.happyreport.co.kr/prev/201404/%5B%ED%99%94%EC%9D%BC%EA%B5%AC%EC%A1%B0%5D%203%EC%9B%90%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%95%A9%EB%B3%91%20%EC%95%8C%EA%B3%A0%EB%A6%AC-5811_01.jpg)
![[화일구조] 3원 다단계 합병 알고리-5811_02_.jpg](https://sales.happyreport.co.kr/prev/201404/%5B%ED%99%94%EC%9D%BC%EA%B5%AC%EC%A1%B0%5D%203%EC%9B%90%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%95%A9%EB%B3%91%20%EC%95%8C%EA%B3%A0%EB%A6%AC-5811_02_.jpg)
![[화일구조] 3원 다단계 합병 알고리-5811_03_.jpg](https://sales.happyreport.co.kr/prev/201404/%5B%ED%99%94%EC%9D%BC%EA%B5%AC%EC%A1%B0%5D%203%EC%9B%90%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%95%A9%EB%B3%91%20%EC%95%8C%EA%B3%A0%EB%A6%AC-5811_03_.jpg)
![[화일구조] 3원 다단계 합병 알고리-5811_04_.jpg](https://sales.happyreport.co.kr/prev/201404/%5B%ED%99%94%EC%9D%BC%EA%B5%AC%EC%A1%B0%5D%203%EC%9B%90%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%95%A9%EB%B3%91%20%EC%95%8C%EA%B3%A0%EB%A6%AC-5811_04_.jpg)
![[화일구조] 3원 다단계 합병 알고리-5811_05_.jpg](https://sales.happyreport.co.kr/prev/201404/%5B%ED%99%94%EC%9D%BC%EA%B5%AC%EC%A1%B0%5D%203%EC%9B%90%20%EB%8B%A4%EB%8B%A8%EA%B3%84%20%ED%95%A9%EB%B3%91%20%EC%95%8C%EA%B3%A0%EB%A6%AC-5811_05_.jpg)
구조체 배열에 저장한다.
설명
-void make_input(void)
105개를 추가하여 총 355개의 런을 만든다. 처음에는 run의 크기가 4로 제한되므로 run구조체 하나에 정수 4개씩 저장한다. 여기서는 런의 수가 15보다 큰 피보나치 수를 사용하고 메인 메모리에는 4개의 레코드를 유지할 수 있다고 가정하라. 프로그램의 출력은 앞에서 지시한 명세대로 올바르게 작동한다는 것을 증명할 수 있도록 개인적인 출력 형식을 만들어 사용하라.
화일구조,3원 다단계 합병 알고리즘 구현
2)프로그램(program]) 함수 설명(說明)
난수 생성기(random number generator)를 이용하여 정수(0<=정수 <= 10000) 1000개를 생성하고 레코드 하나에 정수 하나를 저장한 파일을 생성하라. 이 화일을 3-원 다단계 합병 기법으로 정렬하는 program을 작성해 보라. 이 program에는 초기 런들을 피보나치 수로 분배하는 알고리즘이 구현되어야 한다.
-초기 런들을 피보나치 수로 분배하는 알고리즘을 포함하고 있어야 한다.