책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 자료구조/알고리즘
· ISBN : 9791140708765
· 쪽수 : 376쪽
책 소개
목차
1장 메모리 안 정보
1.1 변수
1.2 복합 자료 구조
1.3 배열
1.4 문자열
1.5 변수와 배열이 중요한 이유
2장 이진 탐색
2.1 문제 정의
2.2 선형 스캔
2.3 이진 탐색 알고리즘
2.4 이진 탐색 적용하기
2.5 실행 시간 045
2.6 이진 탐색이 중요한 이유
3장 동적 자료 구조
3.1 배열의 한계
3.2 포인터와 참조
3.3 연결 리스트
3.4 연결 리스트에 대한 연산
3.5 이중 연결 리스트
3.6 항목들의 배열과 연결 리스트
3.7 연결 리스트가 중요한 이유
4장 스택과 큐
4.1 스택
4.2 큐
4.3 순서의 중요성
4.4 스택과 큐가 중요한 이유
5장 이진 탐색 트리
5.1 이진 탐색 트리 구조
5.2 이진 탐색 트리에서 탐색하기
5.3 이진 탐색 트리 변경하기
5.4 균형이 맞지 않는 트리의 위험성
5.5 이진 탐색 트리 대량 구축
5.6 이진 탐색 트리가 중요한 이유
6장 트라이와 적응형 자료 구조
6.1 문자열로 이뤄진 이진 탐색 트리
6.2 트라이 118
6.3 트라이가 중요한 이유
7장 우선순위 큐와 힙
7.1 우선순위 큐
7.2 최대 힙
7.3 우선순위 갱신하기
7.4 최소 힙
7.5 힙 정렬
7.6 힙이 중요한 이유
8장 격자
8.1 최근접 이웃 탐색 소개
8.2 격자
8.3 격자에 대한 탐색
8.4 격자 크기의 중요성
8.5 2차원을 넘어
8.6 공간 데이터를 넘어
8.7 격자가 중요한 이유
9장 공간 트리
9.1 쿼드 트리
9.2 k-d 트리
9.3 쿼드 트리와 k-d 트리가 중요한 이유
10장 해시 테이블
10.1 키를 사용한 저장과 탐색
10.2 해시 테이블
10.3 해시 함수
10.4 해시 테이블이 중요한 이유
11장 캐시
11.1 캐시 소개
11.2 만료와 캐시
11.3 다른 만료 전략들
11.4 캐시가 중요한 이유
12장 B-트리
12.1 B-트리 구조
12.2 B-트리 탐색하기
12.3 키 삽입하기
12.4 키 제거하기
12.5 B-트리가 중요한 이유
13장 블룸 필터
13.1 블룸 필터 소개
13.2 블룸 필터 매개변수 튜닝하기
13.3 블룸 필터와 해시 테이블의 비교
13.4 블룸 필터가 중요한 이유
14장 스킵 리스트
14.1 무작위적 구조와 결정적인 구조의 비교
14.2 스킵 리스트 소개
14.3 실행 시간
14.4 스킵 리스트가 중요한 이유
15장 그래프
15.1 그래프 소개
15.2 데이크스트라 알고리즘을 사용해 최단 경로 찾기
15.3 프림의 알고리즘을 사용해 최소 스패닝 트리 찾기
15.4 칸의 알고리즘을 이용한 위상 정렬
15.5 그래프가 중요한 이유
16장 결론
16.1 데이터의 구조가 미치는 영향은 무엇인가?
16.2 동적 자료 구조가 필요한가?
16.3 분할 상환 비용이 무엇인가?
16.4 어떻게 자료 구조를 구체적인 문제에 맞게 적응시킬 수 있을까?
16.5 메모리와 실행 시간 사이의 트레이드오프란 무엇인가?
16.6 자료 구조를 어떻게 튜닝할까?
16.7 무작위화가 기대 동작에 미치는 영향은 어떤가?
16.7 16장이 중요한 이유
책속에서
이 책은 ‘자료 구조’를 통해 바라보는 계산적 사고(computational thinking)에 대한 책이다. 자료 구조는 데이터를 조직적으로 구성하고 저장하기 위한 구조다. 이 책은 유용한 자료 구조를 모아둔 레시피 이상의 책이다. 단순히 자료 구조를 모은 것에 그치지 않고, 각 자료 구조의 근본이 되는 생각과 복잡한 문제를 해결할 때 자료 구조가 미치는 영향을 탐구하며, 앞서 말한 계산적 사고를 직관적으로 이해할 수 있도록 실생활 예시를 들어 설명한다. 이 책의 목표는 데이터 안에 이미 존재하는 구조를 활용하거나 새로운 구조를 만들어 문제를 효율적으로 해결하는 방법을 통찰하는 것이다.
-제레미 쿠비카