본문 바로가기
[Book]

[독서: 알고리즘] Do it 자료구조와 함께 배우는 알고리즘 입문 : 자바 편

by Inkim 2020. 11. 10.

 

Do it 자료구조와 함께 배우는 알고리즘 입문 : 자바편

보요 시바타 지음 | 강민 역 | 이지스퍼블리싱

2018년 05월 15일 | 432p | 원서 : 新.明解JAVAで學ぶアルゴリズムとデ-タ構造

완독일 : 2020.11.10 

 

목차

01 기본 알고리즘
01-1 알고리즘이란?
세 값의 최댓값
조건 판단과 분기
순서도의 기호

01-2 반복
1부터 n까지의 정수 합 구하기
양수만 입력하기
구조적 프로그래밍
다중 루프
직각 이등변 삼각형 출력

02 기본 자료구조
02-1 배열
자료구조
배열
배열 요소의 최댓값 구하기
배열 요소를 역순으로 정렬하기
두 배열의 비교
기수 변환
소수의 나열
다차원 배열
한 해의 경과 일 수를 계산하는 프로그램
다차원 배열의 내부

02-2 클래스
클래스란?
클래스의 배열

03 검색
03-1 검색 알고리즘
검색과 키
배열에서 검색하기

03-2 선형 검색
선형 검색
보초법

03-3 이진 검색
이진 검색
복잡도
Arrays.binarySearch에 의한 이진 검색

04 스택과 큐
04-1 스택
스택이란?
스택 만들기

04-2 큐
큐란?
배열로 큐 만들기
링 버퍼로 큐 만들기

05 재귀 알고리즘
05-1 재귀의 기본
재귀란?
팩토리얼 구하기
유클리드 호제법

05-2 재귀 알고리즘 분석
재귀 알고리즘의 분석
재귀 알고리즘의 비재귀적 표현

05-3 하노이의 탑
하노이의 탑

05-4 8퀸 문제
8퀸 문제란?
퀸 배치하기
가지 뻗기
분기 한정법
8퀸 문제를 푸는 프로그램

06 정렬
06-1 정렬
정렬이란?

06-2 버블 정렬
버블 정렬

06-3 단순 선택 정렬
단순 선택 정렬

06-4 단순 삽입 정렬
단순 삽입 정렬

06-5 셸 정렬
단순 삽입 정렬의 특징
셸 정렬

06-6 퀵 정렬
퀵 정렬 살펴보기
배열을 두 그룹으로 나누기
퀵 정렬
비재귀적인 퀵 정렬

06-7 병합 정렬
정렬을 마친 배열의 병합
병합 정렬
Arrays.sort로 퀵 정렬과 병합 정렬하기

06-8 힙 정렬
힙이란?
힙 정렬
배열을 힙으로 만들기

06-9 도수 정렬
도수 정렬

07 집합
07-1 집합
집합과 요소
부분집합과 진부분집합
집합의 연산

07-2 배열로 집합 만들기
배열로 집합 만들기

08 문자열 검색
08-1 브루트-포스법
문자열 검색이란?
브루트-포스법
String.IndexOf 메서드로 문자열 검색하기

08-2 KMP법
KMP법

08-3 Boyer-Moore법
Boyer-Moore법

09 리스트
09-1 선형 리스트
선형 리스트란?
배열로 선형 리스트 만들기

09-2 포인터로 연결 리스트 만들기
포인터로 연결 리스트 만들기
연결 리스트를 사용한 프로그램

09-3 커서로 연결 리스트 만들기
커서로 연결 리스트 만들기
배열의 비어 있는 요소 처리하기
프리 리스트

09-4 원형 이중 연결 리스트
원형 리스트
이중 연결 리스트
원형 이중 연결 리스트

10 트리
10-1 트리
트리란?
순서 트리 탐색

10-2 이진트리와 이진검색트리
이진트리
완전이진트리
이진검색트리
이진검색트리 만들기
이진검색트리를 이용하는 프로그램

11 해시
11-1 해시법
정렬된 배열에 새로운 값 추가하기
해시법
충돌
체인법
오픈 주소법

 

---------------------------------------------------------------------------------

익숙한 언어인 자바로 구현된 기초 알고리즘 책.

파이썬 알고리즘과 LeetCode로 본격적으로 준비해야겠다.