책소개
문제 해결을 위한 방법이 알고리즘이다. 그러나 방법을 이해하는데 그치면 초급 수준이다. 어떤 방법이 더 나은지에 관한 것이 효율이다. 일반적인 효율 분석은 물론 상각 복잡도에 의한 효율 분석까지 가할 수 있어야 중급 수준에 이른다. 알고리즘이 옳은지를 묻는 타당성 증명도 놓쳐서는 안된다. 논리 전개나 귀납법, 귀류법을 통해 타당성을 증명할 수 있어야 비로소 고급 수준에 이른다. 3 박자다. 방법과 효율과 타당성이다. 이 책이 알고리즘 교과서인 이유는 3 박자를 모두 갖추고 있기 때문이다.
이 책은 알고리즘 설계 방법을 열 가지 기법으로 설명한다. 억지 기법, 분할 정복, 탐욕 기법, 백트래킹, 한정 분기, 동적 프로그래밍, 랜덤 알고리즘, 근사 알고리즘, 휴리스틱 알고리즘, 유전자 알고리즘 등이 그것이다. 특히 동일한 문제를 놓고 여러가지 기법을 써서 풀어 봄으로써 각 기법의 차이점을 분명하게 하고자 한다. 책 내용은 대학의 강의는 물론, 코딩 면접이나 경진대회에도 대비할 수 있을 정도로 포괄적이다. 자료구조, 고급 자료구조, 알고리즘, 기초 계산 이론 순으로 4부로 나누어 설명한다.
1부 자료구조 요약에서는 리스트, 스택, 큐, 2진 트리, 우선순위 큐 등을 요약하면서 기초를 다진다.
2부 알고리즘과 효율에서는 효율 분석 방법을 설명하고 정렬, 탐색, 그래프를 대상으로 효율을 분석한다.
3부 알고리즘 설계에서는 전술한 열 가지 설계 기법을 유사코드 수준에서 설명하고 예시한다.
4부 알고리즘의 한계에서는 컴퓨터 계산 능력의 한계를 바탕으로 문제를 분류하고 계산 가능성을 설명함으로써 보다 큰 틀에서 알고리즘을 바라 볼 수 있도록 한다.
쉽고 어렵고는 상대적인 개념이다. 설명하는 사람이 조리 있게 전달하고 또, 이해하려는 사람이 집중하면 어려운 것이 쉬운 것으로 바뀐다. 이 책은 700 여개의 그림 및 표를 통해 때로는 직관적으로, 때로는 논리적으로, 다양한 알고리즘을 이해할 수 있도록 했다. 나아가 250 여개의 연습 문제를 통해 응용 방법을 고민해 볼 수 있도록 했다. 물론 이러한 노력이 효과가 있는지에 대한 판단은 독자의 몫이다. 교수자의 편의를 위해, 컬러 버전의 그림 및 샘플 슬라이드 파일이 있는 주소도 첨부되어 있다.
저자소개
저자 : 주우석
학력 및 경력
서울공대 전자공학과 학사
University of Florida 컴퓨터공학 석사
University of Florida 컴퓨터공학 박사
University of Florida Postdoctoral Researcher
University of California at Irvine Visiting Professor
IBM Korea, 데이콤 정보통신연구소
현) 명지대학교 공과대학 컴퓨터공학과 명예교수
저서
전공자를 위한 C 언어 프로그래밍(한빛 아카데미, 2018)
C, C++로 배우는 자료구조론(한빛 아카데미, 2015)
openGL로 배우는 3차원 컴퓨터 그래픽스(한빛 아카데미, 2013)
논증 글쓰기: 에세이, 논술, 논문의 실체(교보문고, 2017)
목차
1부
1장. 리스트, 스택, 큐
1) 배열과 연결 리스트
2) 깊이우선 탐색과 너비우선 탐색, 데크
2장. 2진 트리와 우선순위 큐
1) 2진 트리와 2진 힙
2) 이항 힙과 피보나치 힙
2부
3장. 알고리즘과 효율 분석
1) 타당성과 효율 분석, 재귀 트리와 마스터 정리
2) 상각 복잡도
4장. 정렬 알고리즘
1) 합병 정렬과 퀵 정렬
2) 카운팅 정렬과 버킷 정렬, 기수 정렬, 외부 정렬
5장. 탐색 알고리즘
1) AVL 트리와 스플레이 트리
2) 2-3 트리, 2-3-4 트리, 레드 블랙 트리, B 트리, 기수 탐색트리, 해시
6장. 그래프 알고리즘
1) 너비우선 탐색과 깊이우선 탐색
2) 위상 정렬, 연결 그래프, 배타적 집합과 유니언 파인드
3부
7장. 분할정복 기법
1) 수학적 귀납법
2) 최대 부분배열, 최 근접 쌍 찾기
8장. 탐욕 기법
1) 부분 배낭, 행사 선택, 거스름돈 I, 최대 지연 최소화
2) 방 배정, 허프만 코딩, 다이익스트라, 최소 신장트리
3) 컨벡스 헐, 안정된 결혼, 선형 계획법
9장. 백트래킹 기법과 한정 분기 기법
1) 문자 순열, 거스름돈 II, 8 퀸, 그래프 컬러링
2) 제로 원 배낭 I, 제로 원 배낭 II, 거스름돈 III, 할당과 헝가리 법
10장. 동적 프로그래밍 기법
1) 피보나치 수열, 거스름돈 IV, 제로 원 배낭 III
2) 최대 연속 부분수열, 최소 편집 거리, 최장 증가 부분수열
3) 행렬의 연속 곱셈, 최단 경로, 부분집합 합계와 균형 분할
11장. 랜덤, 근사, 휴리스틱, 유전자 기법
12장. 주제별 알고리즘
1) 문자열 탐색, 난수 생성
2) 네트워크 플로우, 이분 매칭
4부
13장. 알고리즘 문제의 분류
1) P, NP, NPC, NP-Hard, 환원
2) 공개키 암호화와 RSA, 양자 컴퓨터
14장. 튜어링 머신
1) 계산 가능성과 멈춤 문제
2) 결정 불가능 문제, 명제 논리와 괴델의 불완전성 이론
도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)