자바로 배우는 핵심 자료구조와 알고리즘: 기술 면접에 필요한 실용주의 자료구조와 알고리즘

Book description

"이 책은 컴퓨터과학을 공부하거나 기술 인터뷰를 준비하는 소프트웨어 개발자를 위한 실용적인 책입니다. 자료구조와 알고리즘을 빠르게 배울 수 있도록 실용적이고 중요한 부분을 중점으로 설명합니다. 자료구조가 어떻게 동작하는지보다 어떻게 활용하는지에 초점을 맞추었습니다.
이 책은 웹 검색이라는 응용 분야에 집중합니다. 이 분야는 자료구조를 광범위하게 사용하며 자체로도 흥미롭고 중요합니다. 다른 책에서는 보기 어렵지만 기술 인터뷰에 필요한 내용입니다. 또한, 버전 관리와 유닛 테스트 같은 기본적인 소프트웨어 엔지니어링 실무 내용도 다룹니다. 장마다 배운 것을 확인할 수 있는 예제가 있고, 해답을 확인할 수 있는 자동화된 테스트도 제공합니다."

Table of contents

  1. 자바로 배우는 핵심 자료구조와 알고리즘
    1. 지은이·옮긴이 소개
    2. 옮긴이의 말
    3. 이 책에 대하여
    4. 감사의 말
    5. 차례 (1/2)
    6. 차례 (2/2)
  2. CHAPTER 1 인터페이스
    1. 1.1 리스트가 두 종류인 이유
    2. 1.2 자바 interface
    3. 1.3 List interface
    4. 1.4 실습 1
  3. CHAPTER 2 알고리즘 분석
    1. 2.1 선택 정렬
    2. 2.2 빅오 표기법
    3. 2.3 실습 2
  4. CHAPTER 3 ArrayList 클래스
    1. 3.1 MyArrayList 메서드 분류하기
    2. 3.2 add 메서드 분류하기
    3. 3.3 문제 크기
    4. 3.4 연결 자료구조
    5. 3.5 실습 3
    6. 3.6 가비지 컬렉션
  5. CHAPTER 4 LinkedList 클래스
    1. 4.1 MyLinkedList 메서드 분류하기
    2. 4.2 MyArrayList와 MyLinkedList 비교하기
    3. 4.3 프로파일
    4. 4.4 결과 해석하기
    5. 4.5 실습 4
  6. CHAPTER 5 이중 연결 리스트
    1. 5.1 성능 프로파일 결과
    2. 5.2 LinkedList 메서드 프로파일하기
    3. 5.3 LinkedList 끝에 더하기
    4. 5.4 이중 연결 리스트
    5. 5.5 자료구조 선택하기
  7. CHAPTER 6 트리 순회
    1. 6.1 검색 엔진
    2. 6.2 HTML 파싱하기
    3. 6.3 jsoup 사용하기
    4. 6.4 DOM 트리 반복하기
    5. 6.5 깊이 우선 탐색
    6. 6.6 스택
    7. 6.7 반복적 DFS
  8. CHAPTER 7 철학으로 가는 길
    1. 7.1 시작하기
    2. 7.2 Iterable과 Iterator
    3. 7.3 WikiFetcher
    4. 7.4 실습 5
  9. CHAPTER 8 인덱서
    1. 8.1 자료구조 선택
    2. 8.2 TermCounter
    3. 8.3 실습 6
  10. CHAPTER 9 Map 인터페이스
    1. 9.1 MyLinearMap 구현하기
    2. 9.2 실습 7
    3. 9.3 MyLinearMap 분석하기
  11. CHAPTER 10 해싱
    1. 10.1 해싱
    2. 10.2 해싱의 동작 방식
    3. 10.3 해싱과 변형
    4. 10.4 실습 8
  12. CHAPTER 11 HashMap 클래스
    1. 11.1 실습 9
    2. 11.2 MyHashMap 분석하기
    3. 11.3 트레이드오프
    4. 11.4 MyHashMap 프로파일링
    5. 11.5 MyHashMap 클래스 고치기
    6. 11.6 UML 클래스 다이어그램
  13. CHAPTER 12 TreeMap 클래스
    1. 12.1 해싱의 문제점
    2. 12.2 이진 탐색 트리
    3. 12.3 실습 10
    4. 12.4 TreeMap 구현하기
  14. CHAPTER 13 이진 탐색 트리
    1. 13.1 단순한 MyTreeMap 클래스
    2. 13.2 값 탐색하기
    3. 13.3 put 메서드 구현하기
    4. 13.4 중위 순회
    5. 13.5 로그 시간 메서드
    6. 13.6 자가 균형 트리
    7. 13.7 추가 실습
  15. CHAPTER 14 영속성
    1. 14.1 레디스
    2. 14.2 레디스 클라이언트와 서버
    3. 14.3 레디스 기반 인덱스 만들기
    4. 14.4 레디스 데이터 타입
    5. 14.5 실습 11
    6. 14.6 추가 제안
    7. 14.7 설계 힌트
  16. CHAPTER 15 위키피디아 크롤링
    1. 15.1 레디스 기반의 인덱서
    2. 15.2 조회 성능 분석
    3. 15.3 인덱싱 성능 분석
    4. 15.4 그래프 순회
    5. 15.5 실습 12
  17. CHAPTER 16 불리언 검색
    1. 16.1 크롤러 해답
    2. 16.2 정보 검색
    3. 16.3 불리언 검색
    4. 16.4 실습 13
    5. 16.5 Comparable과 Comparator
    6. 16.6 확장
  18. CHAPTER 17 정렬
    1. 17.1 삽입 정렬
    2. 17.2 실습 14
    3. 17.3 병합 정렬 분석
    4. 17.4 기수 정렬
    5. 17.5 힙 정렬
    6. 17.6 제한된 힙 정렬
    7. 17.7 공간 복잡도
  19. 찾아보기

Product information

  • Title: 자바로 배우는 핵심 자료구조와 알고리즘: 기술 면접에 필요한 실용주의 자료구조와 알고리즘
  • Author(s): 유동환, 앨런 B. 다우니
  • Release date: June 2018
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791162240847