기본 콘텐츠로 건너뛰기

재귀호출 1

컴퓨터 알고리즘을 공부하기 위해 많은 준비가 필요한 것은 아니다.
가장 기본적인 개발 환경은 Borland 사의 TurboC++ 컴파일러를 구하여, DOS Shell 상에서 실행되는 프로그램으로 만들면 된다.
UI를 구현할 필요가 없으며, 가장 기본적인 입출력 함수를 사용하면 된다.
컴퓨터 알고리즘을 공부한다는 것이 궁극적으로 C 문법을 익히기 위한 것이 아니며,
프로그램을 보기좋게 꾸미기 위한 것이 아니다.
대단위 프로그램으로 얘기한다면 그 프로그램의 핵심이 되는 엔진을 만드는 것이다.
우선 정형화된 컴퓨터 알고리즘을 정리해 보도록 하겠다.

재귀(Recursion)호출
컴퓨터 알고리즘을 언급하는 많은 자료들에서 첫번째 Chapter 로 잡는 것이 "정렬"이다.
이 정렬 알고리즘 중 다른 정렬들에 비해 비교적 좋은 성능을 가진 "퀵정렬", 데이타베이스의 정형화된 형태 중 이진트리내의 순회, 차량항법장치등 길찾기 방법 중의 하나인 그래프 탐색등에 사용하는 재귀호출을 알아보도록 하자.
말 그대로 자기 자신을 다시 호출하여 실행하는 알고리즘이다.
이를 구현하기 위해서 반드시 고려하여야 할 부분이 종료 조건이다. 이 종료 조건에 의해 최종적인 결과치가 나오기 때문이다.
또한 재귀의 깊이가 일정값을 넘었을 경우, 스택오버플로우가 발생한다.
또한 재귀함수와 등가인 비재귀함수와의 계산시간은 엄청난 차이를 보인다.
이는 계산비교 함수로 이를 확인해 보도록 하자.

댓글

이 블로그의 인기 게시물

Ubuntu (Kubuntu) 에 desktop 파일 만들기

Package 관리자등을 통해 직접 Repository 에 있는 Application 을 설치하는 경우에는 필요한 경로와 파일, Category 로 분류된 Icon 등록 등이 자동적으로 이루어지나 firefox, eclipse 등 새로운 버전을 새로 설치할 경우, 다음과 같은 절차를 통해 시작메뉴에 등록시킬 수 있다. 다음은 eclipse-SDK-3.6-linuxx-gtk.tar.gz 을 받아 설치 등록하는 것을 예로 든다. 1. 다운받은 파일을 /usr/lib에 압축해제한다. (물론, super user 계정으로 실행해야 한다.) 2. 보통의 경우, /usr/bin Directory 는 PATH 에 물려 있으므로 다음과 같은 실행 파일을 만들어 놓는다. # cd /usr/lib # chmod +x eclipse # cd /usr/bin # sudo nano eclipse eclipse 파일에는 아래의 내용을 입력하여 넣는다. export ECLIPSE_HOME="/usr/lib/eclipse" $ECLIPSE_HOME/eclipse $ * # sudo chmod 755 eclipse 3. Desktop Menu 에 추가하려면 # cd /usr/share/applications # sudo nano eclipse.desktop [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=eclipse Icon=/usr/lib/eclipse/icon.xpm Terminal=false Type=Application Categories=GNOME;Application;Development' StartupNotify=true 이렇게 입력한 파일을 저장하면, 시작메뉴 > 개발 > Eclipse 아이콘이 생성되어 메뉴에서 직접 실행할 수 있게된다.

STM32CubeIDE 한글 주석 깨짐 문제 해결

STM32CubeIDE 는 JAVA로 프로그램된 eClipse CDT 프레임워크 기반으로 제작된 소프트웨어 이다. 아래의 내용은 STM32CubeIDE 개발 환경에서,  시스템 환경을 변경하기 위해  Pinout 등을 수정하여  Device Configuration Tool Code Generation (IOC File) 을 수행하면 수정된 코드가 자동 생성된다. 이 때, 소스 상의 한글 주석이 깨지는 문제점을 해결하는 방법이다. JAVA의 File Encoding 문제이며, 나는 소스파일을 UTF-8로 encoding 하도록 수정하였다. 다음의 순서로 진행한다. 1. 메뉴 Window > Preferences > Workspace - 하단의 Text file encoding을 Other 리스트 중에서 UTF-8을 선택한다. - Apply and Close 한다. 2. 탐색기 > 내 PC > 마우스 우측 클릭 > 팝업 메뉴에서 "속성" > 고급 시스템 설정 - 시스템 속성 창이 뜨면 "고급" 탭 하단의 "환경 변수" 클릭 - 사용자 변수에 "새로 만들기" 버튼을 눌러 변수 이름 : JAVA_TOOL_OPTIONS 변수 값 : -Dfile.encoding=UTF-8

ubuntu 또는 kubuntu 에서 Sun Java JDK 1.6 설치

1. 인터넷 브라우저를 열어, SDN Home 의 Download Center 에서 Download Java SE Development Kit 6u21 for Linux, Multi-language 를 실행한다. 2. jdk-6u21-linux-i586.bin 이 저장되면, 3. 터미널 창을 열어 다음을 실행한다. 4. 압축파일이 저장된 Directory 로 이동한다. snjee@snjee-kubuntu:~$ cd setupapps snjee@snjee-kubuntu:~$ sudo mv jdk-6u21-linux-i586.bin /usr/local/ snjee@snjee-kubuntu:~$ sudo chmod a+x /usr/local/jdk-6u21-linux-i586.bin snjee@snjee-kubuntu:~$ sudo ./jdk-6u21-linux-i586.bin [아래는 압축이 풀리고 마지막에 표시되는 Comment 부분이다.] Product Registration is FREE and includes many benefits: * Notification of new versions, patches, and updates * Special offers on Sun products, services and training * Access to early releases and documentation Product and system data will be collected. If your configuration supports a browser, the Sun Product Registration form for the JDK will be presented. If you do not register, none of this information will be saved. You may also register your JDK later by opening the register.html file (l...