Computers/(한빛) 컴퓨터개론

ch8. 알고리즘

emzei 2011. 8. 16. 14:02

1. 알고리즘의 조건을 기술하여라.

1) 0 개 이상의 입력과 1 개 이상의 출력이 있어야 한다.

2) 종료되어야 한다.

3) 모든 명령이 실행 가능해야 한다.



2. 다음의 데이터들에 대해 물음에 답하여라


[ 95 ] [ 75 ] [ 85 ] [ 100 ] [ 50 ]


[문제 풀기에 앞서 동작 원리부터 살펴보자]

선택정렬(selection sort) 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식



삽입정렬(insertion sort) : 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입해 가며 정렬하는 방식


버블정렬(bubble sort) : 서로 이웃한 데이터들을 비교하며 가장 큰 데이터를 가장 뒤로 보내며 정렬하는 방식


퀵정렬(quick sort) : 기준키를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방식




(1) 선택 정렬을 이용하여 오름차순으로 정렬하여라



(2) 삽입 정렬을 이용하여 오름차순으로 정렬하여라



(3) 버블 정렬을 이용하여 오름차순으로 정렬하여라



(4) 퀵 정렬을 이용하여 오름차순으로 정렬하여라




3. 다음의 데이터들에 대해 물음에 답하여라.


[문제 풀기에 앞서 동작 원리부터 살펴보자]

선형탐색(linear search) : 순차탐색이라고도 하는데, 주어진 데이터 집합에서 원하는 데이터를 처음부터 순차적으로 비교하면서 찾는 방법.



이진탐색(binary search) : 정렬된 데이터 집합을 이분화하면서 탐색하는 방법.



(1) 선형 탐색을 이용하여 데이터 7을 탐색하여라.




(2) 이진 탐색을 이용하여 데이터 7을 탐색하여라.




4. 재귀호출을 이용하여 n!를 구하는 함수를 작성하여라




5. 하노이 탑을 구하는 함수를 다음과 같이 호출하였을 때의 동작 과정을 기술하여라.


[ hanoi(3 , "left" , "middle", "right"); ]

<하노이 탑을 구하는 함수>

---------------------------------------------------------------------------------

void hanoi(int n, char A[], char B[], char C[])

{

if (n == 1)

printf("board %d move %s -> %s", n , A , C);

else {

hanoi(n-1, A, C, B);

printf("board %d move %s -> %s", n , A , C);

hanoi(n-1, B, A, C);

}

}

---------------------------------------------------------------------------------




빨간색이 출력이구

위에서부터 차례대로 그 출력 결과입니다!


'Computers > (한빛) 컴퓨터개론' 카테고리의 다른 글

컴퓨터개론 - 한빛미디어  (1) 2014.01.14
ch9. 데이터베이스  (0) 2011.08.16
ch7. 자료구조  (0) 2011.07.02
ch6. 프로그래밍 언어  (0) 2010.12.28
ch5. 운영체제  (0) 2010.12.28