그림으로 이해하는 알고리즘 - 알고리즘과 자료구조, 쉽고 재미있게 시작하자! <*> 그림으로 이해하는 시리즈
이시다 모리테루,미야자키 슈이치 (지은이),이동규 (옮긴이)길벗2024-04-30원제 : アルゴリズム?鑑 ?補改訂版
알고리즘은 같은 목적을 달성하더라도 서로 다르다. 어떤 알고리즘은 실행 시간이 짧지만 메모리를 많이 사용하고, 어떤 알고리즘은 실행 시간이 길지만 메모리를 적게 사용한다. 다양한 알고리즘을 안다는 건 프로그램을 만들 때 선택지가 늘어난다는 의미다. 효율적인 알고리즘을 실행하기 위해서는 그에 맞는 적절한 자료 구조를 사용해야 한다. 즉, 상황에 맞게 최적의 알고리즘과 자료구조를 선택할 수 있는 능력은 좋은 프로그래머가 되기 위한 조건 중 하나다.
이 책은 ‘알고리즘 도감’이라는 애플리케이션을 기반으로 작성했다. 앱은 애니메이션을 사용해 알고리즘의 동작을 설명하는데, 이 책은 그림을 충분히 사용해 동작하는 앱만큼 알기 쉽게 만들었다. 또한 앱에는 없는 ‘알고리즘이란 무엇인가’, ‘알고리즘의 계산 시간’, ‘그래프의 기초’ 같은, 알고리즘 학습 전 알아야 하는 기본 내용을 새롭게 작성했다. 개정2판에는 1판과 앱에서 다루지 않은 ‘데이터 압축’을 추가하고 ‘최소 신장트리’, ‘매칭’ 같은 그래프 문제와 ‘문자열 매칭’을 새로 추가했다.
목차
서장 알고리즘의 기본
0-1 알고리즘이란?
0-2 계산 시간 측정 방법
1장 데이터 구조
1-1 데이터 구조란?
1-2 리스트
1-3 배열
1-4 스택
1-5 큐
1-6 해시 테이블
1-7 힙
1-8 이진 탐색 트리
2장 정렬
2-1 정렬이란?
2-2 버블 정렬
2-3 선택 정렬
2-4 삽입 정렬
2-5 힙 정렬
2-6 병합 정렬
2-7 퀵 정렬
3장 배열 탐색
3-1 선형 탐색
3-2 이진 탐색
4장 그래프
4-1 그래프란?
4-2 너비 우선 탐색
4-3 깊이 우선 탐색
4-4 벨먼-포드 알고리즘
4-5 다익스트라 알고리즘
4-6 A*
4-7 크루스칼 알고리즘
4-8 프림 알고리즘
4-9 매칭 알고리즘
5장 보안 알고리즘
5-1 보안 알고리즘
5-2 암호의 기본
5-3 해시 함수
5-4 대칭키 암호 방식
5-5 공개키 암호 방식
5-6 하이브리드 암호 방식
5-7 디피-헬먼 키 교환법
5-8 메시지 인증 코드
5-9 디지털 서명
5-10 디지털 인증서
6장 클러스터링
6-1 클러스터링이란?
6-2 k-평균 알고리즘
7장 데이터 압축
7-1 데이터 압축과 부호화
7-2 런 렝스 부호화
7-3 유일 복호 가능 부호
7-4 순시 부호
7-5 하프만 코드
8장 그 외 알고리즘
8-1 유클리드 호제법
8-2 소수 판별법
8-3 문자열 매칭
8-4 커누스-모리스-프랫 알고리즘
8-5 페이지랭크
8-6 하노이의 탑
찾아보기