Part 1 데이터 구조
1장 데이터 구조와 알고리즘, 자료형, 빅 오 표기법
데이터 구조와 알고리즘 개요
데이터 구조
알고리즘
데이터 구조와 알고리즘의 관계
기본 자료형
불
문자
정수
부동 소수점 수
함수
함수, 메소드, 프로시저, 서브루틴
재귀와 반복
알고리즘의 세 가지 유형
알고리즘 분석
빅 오 표기법
마치며
2장 선형 데이터 구조
컴퓨터 메모리
선형 데이터 구조의 개요
배열
리스트
스택
큐
우선순위 큐
마치며
3장 트리 데이터 구조
트리
이진 트리
AVL 트리
RB 트리
B 트리
힙
마치며
4장 해시 데이터 구조
해시와 해시 함수
해시 테이블
컴퓨터 보안 기초
암호 시스템
공개 키 암호 시스템
해싱 vs 암호화
컴퓨터 보안에서 해시의 역할
해시와 순환 중복 검사
해시의 다른 용도
마치며
5장 그래프
차원, 점, 선
그래프
그래프 vs 트리
무향 그래프와 유향 그래프
가중치 그래프
그래프와 소셜 네트워크 서비스
그래프 데이터베이스
마치며
Part 2 알고리즘
6장 선형 및 이진 탐색
선형 탐색
선형성
선형 탐색의 원리
이진 탐색
로그
이진 탐색의 원리
마치며
7장 정렬 알고리즘
정렬 알고리즘의 특징
버블 정렬
선택 정렬
삽입 정렬
셸 정렬
병합 정렬
퀵 정렬
힙 정렬
버킷 정렬
기수 정렬
마치며
8장 경로 탐색 알고리즘
너비 우선 탐색
깊이 우선 탐색
데이크스트라 알고리즘
A* 알고리즘
마치며
9장 군집화 알고리즘
K-평균 알고리즘
K-최근접 이웃 알고리즘
머신러닝
신경망
딥러닝
마치며
Part 3 데이터
프로그래밍 언어와 무관한 알고리즘과 데이터 구조의 기초를 만난다
알고리즘이나 데이터 구조는 컴퓨터 과학 전반에서 광범위하게 적용되는 기반 개념입니다. 효율적인 프로그래밍, 데이터베이스 관리, 운영체제의 동작 제어 등에 필요합니다. 그런데 알고리즘과 데이터 구조를 시험 보듯 달달 외워야만 프로그래밍을 할 수 있는 것은 아닙니다. 그래서 실무에서 일하다 보면 알고리즘과 데이터 구조는 점점 머릿속에서 잊혀 가곤 합니다.
하지만 다양한 개발 환경에 빨리 적응하는 개발자는 알고리즘과 데이터 구조의 기본에 강합니다. 본질적으로 프로그래밍 언어의 종류에 상관없이 기본 수준의 데이터 구조와 알고리즘을 이해하기 때문입니다. 그래서 최근 많은 기업의 채용에서 코딩 테스트나 기술 면접을 도입하고 알고리즘이나 데이터 구조에 관한 지식이 얼마나 탄탄한지 묻곤 합니다.
이 책은 대다수 프로그래밍 언어나 시스템에서 공통으로 다루는 알고리즘과 데이터 구조 개념을 빠르게 살펴보려는 목적으로 썼습니다. 데이터 구조와 알고리즘을 이해하고 싶지만 프로그래밍 언어의 상세한 특징을 알 필요 없이 알고리즘과 데이터 구조를 설명합니다. 정기적으로 서로 다른 프로그래밍 언어를 사용하는 사람, 두꺼운 책을 볼 시간이 없는 사람, 데이터 구조와 알고리즘의 개념을 문장으로 이해하고 싶은 사람은 ‘코드 없이’ 알고리즘과 데이터 구조의 개념을 빠르게 익히기 바랍니다. 사용하는 프로그래밍 언어가 무엇이든 빠르게 효율적인 프로그래밍을 할 수 있을 것입니다.