이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
자료구조와 알고리즘을 활용하여 간단한 웹 검색 엔진 만들기
|
CHAPTER 1 인터페이스_1.1 리스트가 두 종류인 이유 _1.2 자바 interface _1.3 List interface _1.4 실습 1 CHAPTER 2 알고리즘 분석_2.1 선택 정렬 _2.2 빅오 표기법 _2.3 실습 2 CHAPTER 3 ArrayList 클래스_3.1 MyArrayList 메서드 분류하기 _3.2 add 메서드 분류하기 _3.3 문제 크기 _3.4 연결 자료구조 _3.5 실습 3 _3.6 가비지 컬렉션 CHAPTER 4 LinkedList 클래스_4.1 MyLinkedList 메서드 분류하기 _4.2 MyArrayList와 MyLinkedList 비교하기 _4.3 프로파일 _4.4 결과 해석하기 _4.5 실습 4 CHAPTER 5 이중 연결 리스트 _5.1 성능 프로파일 결과 _5.2 LinkedList 메서드 프로파일하기 _5.3 LinkedList 끝에 더하기 _5.4 이중 연결 리스트 _5.5 자료구조 선택하기 CHAPTER 6 트리 순회_6.1 검색 엔진 _6.2 HTML 파싱하기 _6.3 jsoup 사용하기 _6.4 DOM 트리 반복하기 _6.5 깊이 우선 탐색 _6.6 스택 _6.7 반복적 DFS CHAPTER 7 철학으로 가는 길_7.1 시작하기 _7.2 Iterable과 Iterator _7.3 WikiFetcher _7.4 실습 5 CHAPTER 8 인덱서_8.1 자료구조 선택 _8.2 TermCounter _8.3 실습 6 CHAPTER 9 Map 인터페이스_9.1 MyLinearMap 구현하기 _9.2 실습 7 _9.3 MyLinearMap 분석하기 CHAPTER 10 해싱_10.1 해싱 _10.2 해싱의 동작 방식 _10.3 해싱과 변형 _10.4 실습 8 CHAPTER 11 HashMap 클래스_11.1 실습 9 _11.2 MyHashMap 분석하기 _11.3 트레이드오프 _11.4 MyHashMap 프로파일링 _11.5 MyHashMap 클래스 고치기 _11.6 UML 클래스 다이어그램 CHAPTER 12 TreeMap 클래스_12.1 해싱의 문제점 _12.2 이진 탐색 트리 _12.3 실습 10 _12.4 TreeMap 구현하기 CHAPTER 13 이진 탐색 트리_13.1 단순한 MyTreeMap 클래스 _13.2 값 탐색하기 _13.3 put 메서드 구현하기_13.4 중위 순회 _13.5 로그 시간 메서드 _13.6 자가 균형 트리 _13.7 추가 실습 CHAPTER 14 영속성_14.1 레디스 _14.2 레디스 클라이언트와 서버 _14.3 레디스 기반 인덱스 만들기 _14.4 레디스 데이터 타입 _14.5 실습 11 _14.6 추가 제안 _14.7 설계 힌트 CHAPTER 15 위키피디아 크롤링_15.1 레디스 기반의 인덱서 _15.2 조회 성능 분석 _15.3 인덱싱 성능 분석 _15.4 그래프 순회 _15.5 실습 12 CHAPTER 16 불리언 검색_16.1 크롤러 해답 _16.2 정보 검색 _16.3 불리언 검색 _16.4 실습 13 _16.5 Comparable과 Comparator _16.6 확장 CHAPTER 17 정렬_17.1 삽입 정렬 _17.2 실습 14_17.3 병합 정렬 분석 _17.4 기수 정렬 _17.5 힙 정렬 _17.6 제한된 힙 정렬 _17.7 공간 복잡도
|
Allen B. Downey
앨런 B. 다우니의 다른 상품
유동환의 다른 상품
이 책은 자료구조와 알고리즘에 대한 내용을 설명하기 위해 문제 풀이 형식으로 구성되어 있습니다. 14개의 실습을 통해 자바 언어에서 기본으로 제공하는 자료구조인 자바 컬렉션 프레임워크(Java Collections Framework, JCF)의 주요 클래스를 중심으로 개념을 학습하고 시간 복잡도를 분석하며 성능을 측정해 봅니다. 또한, 성능 개선에 대해서도 알려 줍니다.자료구조와 알고리즘에 대한 이해는 소프트웨어의 품질을 높이는 아주 기본적인 작업입니다. 요즘은 빅데이터와 클라우드가 있고 이미 검증된 수많은 DBMS가 있지만, 단지 활용만 해서는 원하는 품질을 얻기 힘듭니다. 내가 잘 만들고 있는지, 이미 구현된 레거시 소프트웨어의 병목은 무엇인지 분석하려면 학부 과정에서 배우는 자료구조와 알고리즘이 단단한 기본기가 되기 때문입니다. 졸업하고 나면 세부 내용은 모두 잊히겠지만, 머릿속 어딘가에는 남아 다시 떠올리게 됩니다.이 책은 한 번에 후루룩 읽기에는 꽤 압축적인 내용을 담고 있습니다. 꼭 설명해야 할 내용은 본문에서 충분히 설명하지만, 그 외 부가적인 내용은 과감하게 외부 링크를 제공합니다. 실습 과제를 먼저 제공하고 그다음 장에서 바로 필자의 해답을 제시하기 때문에 부담을 가질 필요는 없습니다. 끝까지 읽는다면 큰 도움이 된다고 확신합니다.- 옮긴이의 말 중에서
|