Introduction to Algorithms

하, 알고리즘의 중요성 .. 알고리즘 과목 교재

토머스 코멘( Thomas H. Cormen) : 다트모스 대학(Dartmouth College) 컴퓨터과학과 교수
찰스 레이서손(Charles E. Leiserson) : MIT 컴퓨터과학과 교수
로날드 리베스트(Ronald L. Rivest) : MIT 전기공학 및 컴퓨터과학과 교수
클리포드 스타인(Clifford Stein) : 콜럼비아 대학교(Columbia University) 산업공학과 교수

1장. 알고리즘의 역할
1.1 알고리즘
1.2 기술로서의 알고리즘

2장. 시작하기
2.1 삽입 정렬
2.2 알고리즘의 분석
2.3 알고리즘의 설계

3장. 함수의 증가
3.1 점근적 표기
3.2 표준 표기법과 흔히 사용되는 함수

4장. 분할정복
4.1 최대 부분배열 문제
4.2 행렬 곱셈을 위한 스트라센 알고리즘
4.3 점화식을 풀기 위한 치환법
4.4 점화식을 풀기 위한 재귀 트리 방법
4.5 점화식을 풀기 위한 마스터방법
4.6 마스터 정리의 증명

5장. 확률적 분석과 랜덤화된 알고리즘
5.1 고용 문제
5.2 지표 확률 변수
5.3 랜덤화된 알고리즘
5.4 확률적 분석과 지표 확률 변수의 기타 활용

II 정렬과 순서 통계량
개요
6장. 힙 정렬
6.1 힙
6.2 힙 특성 유지하기
6.3 힙 만들기
6.4 힙 정렬 알고리즘
6.5 우선순위 큐

7장. 퀵 정렬
7.1 퀵 정렬
7.2 퀵 정렬의 성능
7.3 랜덤화된 퀵 정렬
7.4 퀵 정렬 분석

8장. 선형 시간 정렬
8.1 정렬의 하한
8.2 계수 정렬
8.3 기수 정렬
8.4 버킷 정렬

9장. 중앙값과 순서 통계량
9.1 최솟값과 최댓값
9.2 선형적인 평균 수행시간에 선택하기
9.3 최악의 경우선형 시간에 선택하기

III 자료구조
개요
10장. 기본 자료구조
10.1 스택과 큐
10.2 연결 리스트
10.3 포인터와 객체 구현하기
10.4 루트 있는 트리 표현하기

11장. 해시 테이블
11.1 직접 주소 테이블
11.2 해시 테이블
11.3 해시 함수
11.4 개방 주소화 방법
11.5 완전 해싱

12장. 이진 검색 트리
12.1 이진 검색 트리의 개념
12.2 이진 검색 트리에 대한 질의
12.3 삽입과 삭제
12.4 임의로 만들어진 이진 검색 트리

13장. 레드블랙 트리
13.1 레드블랙 트리의 특성
13.2 회전
13.3 삽입
13.4 삭제

14장. 자료구조의 확장
14.1 동적 순서 통계량
14.2 자료구조 확장 기법
14.3 구간 트리

IV 고급 설계 및 분석 기법
개요
15장. 동적 프로그래밍
15.1 막대 자르기
15.2 행렬-체인 곱셈
15.3 동적 프로그래밍의 요소
15.4 최장 공통 부분 시퀀스
15.5 최적 이진검색 트리

16장. 그리디 알고리즘
16.1 활동 선택 문제
16.2 그리디 방법의 요소들
16.3 허프만 코드
16.4 매트로이드와 그리디 방법
16.5 매트로이드로 작업 일정짜기 문제

17장. 분할상환 분석
17.1 총계 분석
17.2 결산 방법
17.3 잠재 비용 방법
17.4 동적 테이블

V 고급 자료 구조
개요
18장. B-트리
18.1 B-트리의 개념
18.2 B-트리의 기본연산
18.3 B-트리에서 키삭제하기
19장. 피보나치 힙
19.1 피보나치 힙의 구조
19.2 병합 가능한 힙 연산
19.3 키 감소시키기와 노드 삭제하기
19.4 최대 차수의 한계 정하기

20장. 반 엠데 보아스 트리
20.1 기본 방법
20.2 재귀 구조
20.3 반 엠데 보아스트리

21장 서로 소 집합의 자료구조
21.1 서로 소 집합의 연산
21.2 서로 소 집합의 연결 리스트 표현
21.3 서로 소 집합 포리스트
21.4 경로 압축을 이용한 순위에 의한 합병의 분석

VI 그래프 알고리즘
개요
22장. 기본 그래프 알고리즘
22.1 그래프의 표현
22.2 너비 우선 검색
22.3 깊이 우선 검색
22.4 위상 정렬
22.5 강한 연결 요소

23장. 최소 신장 트리
23.1 최소 신장 트리의 확장
23.2 크루스칼 알고리즘과 프림 알고리즘

24장. 단일 출발지 최단 경로
24.1 벨만-포드 알고리즘
24.2 방향 비순환 그래프에서의 단일 출발점 최단 경로
24.3 다익스트라 알고리즘
24.4 차이 제약 조건과 최단 경로
24.5 최단 경로특성의 증명

25장. 모든 쌍의 최단 경로
25.1 최단 경로와 행렬 곱셈
25.2 플로이드-워샬 알고리즘
25.3 희소 그래프에 대한 존슨 알고리즘

26장. 최대 플로우
26.1 플로우 네트워크
26.2 포드-풀커슨 방법
26.3 최대 이분 매칭
26.4 푸시-재명명 알고리즘
26.5 재명명후-앞보내기 알고리즘

VII 알고리즘 분야의 중요한 토픽
개요
27장 멀티스레드 알고리즘
27.1 동적 멀티스레딩의 기본
27.2 멀티스레드 행렬의 곱셈
27.3 멀티스레드 병합 정렬

28장. 행렬의 연산
28.1 선형 연립방정식의 해
28.2 역행렬
28.3 양으로 정의된 대칭 행렬과 최소-제곱 근사

29장. 선형 계획법
29.1 정규형과 이완형
29.2 문제의 선형 계획법 구성
29.3 심플렉스 알고리즘
29.4 쌍대성
29.5 초기 가능한 기본해

30장. 다항식과 FFT
30.1 다항식의 표현
30.2 DFT와 FFT
30.3 효율적인 FFT의 구현

31장. 정수론 알고리즘
31.1 기초 정수론
31.2 최대공약수
31.3 모듈로 연산
31.4 모듈로 선형 방정식의 해
31.5 중국인의 나머지 정리
31.6 원소의 거듭제곱
31.7 RSA 공개키 암호 시스템
31.8 소수 판정
31.9 정수의 인수분해

32장. 스트링 매칭
32.1 단순 스트링 매칭 알고리즘
32.2 라빈-카프 알고리즘
32.3 유한 오토마타를 이용한 스트링 매칭
32.4 크누스-모리스-프랫 알고리즘

33장. 계산 기하학
33.1 선분의 특징
33.2 선분의 교차성 결정
33.3 볼록 껍질의 발견
33.4 가장 가까운 점들의 쌍 구하기

34장. NP-완비성
34.1 다항 시간
34.2 다항 시간 확인
34.3 NP-완비성과 환원 가능성
34.4 NP-완비성 증명
34.5 NP-완비 문제들

35장. 근사 알고리즘
35.1 정점 덮개 문제
35.2 순회 판매원 문제
35.3 집합 덮개 문제
35.4 랜덤화와 선형 계획법
35.5 부분 집합의 합 문제

VIII 부록 : 수학적 기초
개요
부록 A. 합
A.1 덧셈 공식과 특성
A.2 합의 한계

부록 B. 집합과 기타
B.1 집합
B.2 관계
B.3 함수
B.4 그래프
B.5 트리

부록 C. 계산과 통계
C.1 계산
C.2 확률
C.3 이산 확률 변수
C.4 기하 분포와 이항 분포
C.5 이항 분포의 꼬리

부록 D. 행렬
D.1 행렬과 행렬 연산
D.2 행렬의 기본 특성

Comments