나에게 필요한 지식과 기술을 검색해 보세요.

C 언어로 배우는 알고리즘 입문

지은이

카사이 아사오

옮긴이

진명조

출간일

2004.12.01

레벨

초중급

평점

4.1(8명)

정가

18,000

판매가

16,200

총 결제 금액

10%

16,200

적립 예정

810P

정선된 예제와 절제된 설명으로 알고리즘의 정석을 보여준다

각 분야별로 정선된 알고리즘 예제를 통해 알고리즘을 쉽고 효율적으로 학습할 수 있게 해준다. 제시한 기본 알고리즘을 완전히 이해하면 좀더 현실적인 문제도 풀 수 있을 것이다.

특히, 각 장에서 제시한 모든 예제와 연습문제에 대한 해답은 비주얼 C++와 gcc에서 테스트한 완전한 소스다.

  • 수학 관련 알고리즘 : 수치 적분법, 테일러 전개, 비선형 방정식, 연립방정식의 해법, 보간과 최소제곱법, 긴 자리수 계산, 선형 계획법
  • 정렬과 탐색 알고리즘: 직접 선택법, 거품 정렬, 기본 삽입법, 셸 정렬, 축차 탐색과 이분 탐색, 해시, 병합, 문자열 치환, 문자열 조합
  • 기본 데이터 구조와 응용: 스택, 큐, 리스트, 역폴란드 기법과 파싱, 자기 재편성 탐색과 해시의 체인법
  • 기본 트리와 그 응용 : 이진 탐색 트리, 힙, 다항식 트리, 결정 트리, 힙 정렬과 지능형 데이터베이스
  • 다양한 퍼즐 게임 알고리즘과 백 트래킹, 동적 프로그래밍
  • 프로그래밍 세계의 정리나 공식이라 할 수 있는 알고리즘의 개요
  • 알고리즘 구현을 위한 핵심 개념, 재귀
  • 네비게이터의 핵심 이론, 그래프

추천평(미디어서평)

알고리즘하면 큰 맘 먹고 머리 싸매면서 공부해야 하는 주제로 유명하다. 최근에 보았던 『누워서 읽는 알고리즘』이 지친 프로그래머의 머리를 식혀주고 생각하는 방법을 알려주었다면, 이 책은 고등학교때 배웠던 『수학의 정석』처럼 어떤 시험이든지, 어떤 문제든지 풀 수 있게 만들 것 같은 알고리즘의 정석 같은 책이다. - 방성민(『안전한 프로그램을 만드는 Secure Coding 핵심 원리』 저자)

장별 내용 요약

01장. 워밍업
2장 이후부터 다루는 분야들과는 다소 거리가 있는, 비교적 간단한 알고리즘을 통해 기초를 다진다.

02장. 수치 계산
역사가 아주 오래되어 이론적으로 상당히 체계화된 수치 적분법, 테일러 전개, 비선형 방정식과 연립 방정식의 해법, 보간, 최소 제곱법 등과 같은 수치 계산 알고리즘에 대해 알아본다.

03장. 정렬과 탐색
데이터를 처리하는 기본 방법인 정렬 탐색에 대해 알아본다. 직접 선택법, 거품 정렬, 기본 삽입법, 셸 정렬 등의 정렬법과 축차 탐색과 이분 탐색, 해시 등의 탐색법 뿐만 아니라 병합, 문자열 치환, 문자열 조합 등에 대해서도 설명한다.

04장. 재귀
트리, 그래프와 같은 데이터 구조를 다루는 알고리즘을 위해 꼭 알아야 하는 재귀에 대해 알아본다. 팩토리얼, 피보나치 수열 등의 간단한 예로 시작해 하노이의 탑이나 미로와 같은 문제와 퀵 정렬 등을 재귀를 이용해 구현해본다.

05장. 데이터 구조
대량의 데이터를 다룰 때는 어떤 데이터 구조를 이용하느냐에 따라 사용하는 알고리즘이 달라질 정도로 데이터 구조와 알고리즘은 서로 밀접한 관련이 있다. 이 장에서는 스택, 큐, 리스트 등의 데이터 구조에 대해 알아보고, 스택을 응용한 역폴란드 기법과 파싱, 리스트를 응용한 자기 재편성 탐색과 체인법에 대해 알아본다.

06장. 트리
조건에 따라 구분되는 데이터를 가계도나 회사 조직도와 같이 계층적으로 나타내기에 적합한 트리에 대해 알아본다. 이진 트리를 중심으로 트리를 생성하고 순회하는 방법을 설명하고, 트리를 응용한 예로 힙 정렬과 지능형 데이터베이스에 대해 소개한다

07장. 그래프
트리의 각 노드가 여러 방향으로 서로 연결되어 있는 그래프에 대해 알아본다. 이 장에서 설명하는 그래프에서 지점간 최단 거리를 찾는 방법으로 가장 빨리 갈 수 있는 도로 찾기와 같은 문제를 풀 수 있다.

08장. 그래픽
2차원 도형을 방정식으로 나타내 좌표변환으로 평행이동, 회전, 확대, 축소 등을 하고, 3차원 공간의 좌표를 2차원 평면에 투영하는 방법과 관련 라이브러리에 대해 알아본다.

09장. 퍼즐 게임
알고리즘을 이용해 마방진과 전략이 있는 가위바위보와 같은 퍼즐 게임 등을 해결하는 방법을 알아본다. 그리고 특정 알고리즘을 적용하지 못하고 모든 상황을 일일이 조사해야 할 때 이를 쉽게 해결할 수 있는 백 트래킹과 동적 프로그래밍에 대해서도 알아본다.

저자

목차

서문      
CHAPTER 1. 워밍업
    1-0   알고리즘이란
    1-1   점화식
    1-2   매핑
    1-3   순위 매김
    1-4   랜덤한 순열
    1-5   몬테카를로법
    1-6   유클리드 호제법
    1-7   에라토스테네스의 체
CHAPTER 2. 수치 계산
    2-0   수치 계산이란
    2-1   난수
    2-2   수치 적분
    2-3   테일러 전개
    2-4   비선형 방정식의 해법
    2-5   보간
    2-6   긴 자리수 계산
    2-7   원주율 π
    2-8   연립 방정식의 해법
    2-9   선형 계획법
    2-10  최소 제곱법
CHAPTER 3. 정렬과 탐색
    3-0  정렬과 탐색이란
    3-1  기본 정렬
    3-2  셸 정렬
    3-3  축차 탐색과 경계값
    3-4  이분 탐색
    3-5  병합
    3-6   문자열 조합
    3-7   문자열 치환
    3-8   해시
CHAPTER 4. 재귀
    4-0   재귀란
    4-1   재귀의 간단한 예 
    4-2   재귀 해와 비재귀 해
    4-3   순열의 생성
    4-4   하노이의 탑
    4-5   미로
    4-6   퀵 정렬
CHAPTER 5. 데이터 구조
    5-0   데이터 구조란
    5-1   스택
    5-2   큐
    5-3   리스트
    5-4   리스트에 삽입하기
    5-5   리스트에서 삭제하기
    5-6   이중 연결 리스트
    5-7   역폴란드 기법
    5-8   파싱
    5-9   자기재편성 탐색
    5-10  리스트를 이용한 해시
CHAPTER 6. 트리
    6-0   트리란
    6-1   배열을 이용한 이진 탐색 트리
    6-2   동적 메모리를 이용한 이진 탐색 트리
    6-3   재귀를 이용한 이진 탐색 트리
    6-4   이진 탐색 트리의 순회
    6-5  레벨별 순회
    6-6  힙
    6-7  힙 정렬
    6-8  다항식 트리
    6-9  지능형 데이터베이스
CHAPTER 7. 그래프
    7-0  그래프란
    7-1  그래프의 탐색(높이우선)
    7-2  그래프의 탐색(너비우선)
    7-3  위상 정렬
    7-4  오일러의 한붓그리기
    7-5  최단 경로 문제
CHAPTER 8. 그래픽
    8-0  기본 그래픽 라이브러리
    8-1  move와 turn
    8-2  2차원 좌표 변환
    8-3  기하학적 그래픽
    8-4  3차원 좌표 변환
    8-5  입체 모델
    8-6  음선(陰線) 처리
    8-7  재귀 그래픽 I
    8-8  재귀 그래픽 II
CHAPTER 9. 퍼즐 게임
    9-1  마방진
    9-2  전략이 있는 가위바위보 게임
    9-3  백 트래킹
    9-4  동적 프로그래밍

부록  A-1  GCC로 컴파일할 경우
      A-2  비주얼 C++로 작성할 경우
      A-3  glib.h(터보 C 버전)
      A-4  소스 사용법

찾아보기

리뷰

18,000

10%

16,200