수리논술, 이게 다다.

자연계열 2번

오류 제보

문제

[문제 2] 컴퓨터를 이용하여 특정한 작업을 수행할 때, 어떻게 컴퓨터에 명령하느냐에 따라 빠른 시간 안에 원하는 정보를 획득하기도 하고 그렇지 못하기도 한다. 시간의 중요성이 빠르게 인식되고 있는 현대사회에서는, 컴퓨터를 효율적으로 이용하여 원하는 정보를 빠른 시간 내에 생산하는 명령체계(알고리즘)를 개발 이용하는 것이 중요한 이슈가 되고 있다. 아래에서는, 임의의 n\displaystyle n개의 서로 다른 숫자 a1,…,an\displaystyle a_1,…,a_n이 컴퓨터에 입력되었을 때 이를 증가하는 순서로 정리하는 두 가지의 다른 알고리즘을 소개하고 있다.

(알고리즘 1)스텝 1. a1\displaystyle a_1에 새로 이름을 주어 b1\displaystyle b_1이라고 하자.스텝 2. a1,…,ak\displaystyle a_1,\ldots,a_k를 증가하는 순서대로 정리하여 b1,…,bk\displaystyle b_1,\ldots,b_k라고 부르기로 하자. ak+1\displaystyle a_{k+1}을 이미 정리되어 있는 b1,…,bk\displaystyle b_1,\ldots,b_k와 비교하여 정리하려고 한다. 이를 위하여 ak+1\displaystyle a_{k+1}을 기존 b1,…,bk\displaystyle b_1,\ldots,b_k의 작은 숫자부터 차례로 비교하여 ak+1\displaystyle a_{k+1}이 들어가야 할 위치를 알아내고 그 위치에 ak+1\displaystyle a_{k+1}를 집어넣는다.스텝 3. 스텝 2를 반복하여 a1,…,an\displaystyle a_1,\ldots,a_n이 정리되면, 알고리즘을 종료한다.

(알고리즘 2)스텝 1. a1\displaystyle a_1에 새로 이름을 주어 b1\displaystyle b_1이라고 하자.스텝 2. a1,…,ak\displaystyle a_1,\ldots,a_k를 증가하는 순서대로 정리하여 b1,…,bk\displaystyle b_1,\ldots,b_k라고 부르기로 하자. ak+1\displaystyle a_{k+1}을 이미 정리되어 있는 b1,…,bk\displaystyle b_1,\ldots,b_k와 비교하여 정리하려고 한다.스텝 2-A. b1,…,bk\displaystyle b_1,\ldots,b_k 중 가운데 배치되어있는 b[(k+1)/2]\displaystyle b_{[(k+1)/2]}와 ak+1\displaystyle a_{k+1}을 비교하여, ak+1\displaystyle a_{k+1}이 b[(k+1)/2]\displaystyle b_{[(k+1)/2]}보다 작으면 ak+1\displaystyle a_{k+1}을 b[(k+1)/2]\displaystyle b_{[(k+1)/2]}의 왼쪽에 배치하고 반대의 경우 오른쪽에 배치한다.스텝 2-B. ak+1\displaystyle a_{k+1}이 bl\displaystyle b_l보다 크고 bl+m+1\displaystyle b_{l+m+1}보다 작다고 하자. 이제 ak+1\displaystyle a_{k+1}을 bl\displaystyle b_l와 bl+m+1\displaystyle b_{l+m+1}사이에 배치되어있는 bl+1,…,bl+m\displaystyle b_{l+1},\ldots,b_{l+m}와 비교하여 정리하려고 한다. bl+1,…,bl+m\displaystyle b_{l+1},\ldots,b_{l+m} 중 가운데 배치되어있는 bl+[(m+1)/2]\displaystyle b_{l+[(m+1)/2]}와 ak+1\displaystyle a_{k+1}을 비교하여, ak+1\displaystyle a_{k+1}이 bl+[(m+1)/2]\displaystyle b_{l+[(m+1)/2]}보다 작으면 ak+1\displaystyle a_{k+1}을 bl+[(m+1)/2]\displaystyle b_{l+[(m+1)/2]}의 왼쪽에 배치하고 반대의 경우에는 오른쪽에 배치한다.스텝 2-C. 스텝 2-B를 반복하여 a1,…,ak+1\displaystyle a_1,\ldots,a_{k+1}이 정리되면, 스텝 2를 종료한다.스텝 3. 스텝 2를 반복하여 a1,…,an\displaystyle a_1,\ldots,a_n이 정리되면, 알고리즘을 종료한다.

(1) 위 두 알고리즘 중 어느 알고리즘이 우수한지 판단하기 위하여 알고리즘의 성능을 측정하는 지표를 만들고, 지표의 적정성에 관하여 논하시오. (배점; 10점)

(2) (1)에서 제시한 지표를 이용하여 어느 알고리즘이 우수한지 판정하고, 판정근거를 제시하시오. (배점; 15점)

해설강의 준비중
이 예시답안은 준비중입니다.

첨삭 사례

아직 등록된 첨삭 사례가 없습니다.

질문과 답변 · 0개질문과 답변 · 고정 0개

아직 등록된 질문이 없습니다. 질문 작성은 멤버십 회원만 가능합니다.