컴퓨터 알고리즘을 공부하기 위해 많은 준비가 필요한 것은 아니다.
가장 기본적인 개발 환경은 Borland 사의 TurboC++ 컴파일러를 구하여, DOS Shell 상에서 실행되는 프로그램으로 만들면 된다.
UI를 구현할 필요가 없으며, 가장 기본적인 입출력 함수를 사용하면 된다.
컴퓨터 알고리즘을 공부한다는 것이 궁극적으로 C 문법을 익히기 위한 것이 아니며,
프로그램을 보기좋게 꾸미기 위한 것이 아니다.
대단위 프로그램으로 얘기한다면 그 프로그램의 핵심이 되는 엔진을 만드는 것이다.
우선 정형화된 컴퓨터 알고리즘을 정리해 보도록 하겠다.
재귀(Recursion)호출
컴퓨터 알고리즘을 언급하는 많은 자료들에서 첫번째 Chapter 로 잡는 것이 "정렬"이다.
이 정렬 알고리즘 중 다른 정렬들에 비해 비교적 좋은 성능을 가진 "퀵정렬", 데이타베이스의 정형화된 형태 중 이진트리내의 순회, 차량항법장치등 길찾기 방법 중의 하나인 그래프 탐색등에 사용하는 재귀호출을 알아보도록 하자.
말 그대로 자기 자신을 다시 호출하여 실행하는 알고리즘이다.
이를 구현하기 위해서 반드시 고려하여야 할 부분이 종료 조건이다. 이 종료 조건에 의해 최종적인 결과치가 나오기 때문이다.
또한 재귀의 깊이가 일정값을 넘었을 경우, 스택오버플로우가 발생한다.
또한 재귀함수와 등가인 비재귀함수와의 계산시간은 엄청난 차이를 보인다.
이는 계산비교 함수로 이를 확인해 보도록 하자.
가장 기본적인 개발 환경은 Borland 사의 TurboC++ 컴파일러를 구하여, DOS Shell 상에서 실행되는 프로그램으로 만들면 된다.
UI를 구현할 필요가 없으며, 가장 기본적인 입출력 함수를 사용하면 된다.
컴퓨터 알고리즘을 공부한다는 것이 궁극적으로 C 문법을 익히기 위한 것이 아니며,
프로그램을 보기좋게 꾸미기 위한 것이 아니다.
대단위 프로그램으로 얘기한다면 그 프로그램의 핵심이 되는 엔진을 만드는 것이다.
우선 정형화된 컴퓨터 알고리즘을 정리해 보도록 하겠다.
재귀(Recursion)호출
컴퓨터 알고리즘을 언급하는 많은 자료들에서 첫번째 Chapter 로 잡는 것이 "정렬"이다.
이 정렬 알고리즘 중 다른 정렬들에 비해 비교적 좋은 성능을 가진 "퀵정렬", 데이타베이스의 정형화된 형태 중 이진트리내의 순회, 차량항법장치등 길찾기 방법 중의 하나인 그래프 탐색등에 사용하는 재귀호출을 알아보도록 하자.
말 그대로 자기 자신을 다시 호출하여 실행하는 알고리즘이다.
이를 구현하기 위해서 반드시 고려하여야 할 부분이 종료 조건이다. 이 종료 조건에 의해 최종적인 결과치가 나오기 때문이다.
또한 재귀의 깊이가 일정값을 넘었을 경우, 스택오버플로우가 발생한다.
또한 재귀함수와 등가인 비재귀함수와의 계산시간은 엄청난 차이를 보인다.
이는 계산비교 함수로 이를 확인해 보도록 하자.
댓글