새소식

CS/자료구조와 알고리즘

[A Common-sense guide to data structures and algorithms] 2. 책 내용 간단 요약

  • -

 

본 포스팅은 "A Common-sense guide to data structures and algorithms, 2ed" 및 기타 자료(강의 자료,외부 사이트)를 참고하여 작성한 글입니다.

 

 

책에서 배우는 것

책 앞쪽에 이 책이 어떤 내용을 다루는지에 대한 내용이 적혀있다. 세부적인 내용으로 들어가기 전에 미리 무엇을 배우는 지에 대해 글로 남기는 것이 좋을 듯하여 책에 있는 내용을 정리하여 번역해 보겠다.

 

두 챕터 Why Data Structures MatterWhy Algorithms Matter 에서는 

알고리즘과 자료구조가 중요한 이유에 대해 다룬다. 자료구조와 알고리즘은 무엇인지 설명하고, 시간복잡도의 개념 및 배열(array),집합(set),이진탐색 (binary search)에 대해서도 언급한다.

 

O Yes! Big O Notation 챕터에서는 빅오 표기법에 대해 이해하기 쉽게 설명한다.

(책의 저자는 이 부분이 꽤 중요하다고 강조하였다.)

 

Speeding Up Your Code with Big O, Optimizing Code with and Without Big O, Optimizing for Optimistic Scenarios 챕터에서는 Big O 표기법에 대해 깊게 파고들고 이를 이용해 빠른 생산성을 지닌 코드를 만드는 법을 배운다.

이 과정에서 Bubble sort, selection sort, Insertion Sort 등의 다양한 정렬 알고리즘을 소개해놓았다.

 

Big O in Everyday Code 챕터에서는 빅오 표기법에 대해 배운 내용을 가지고 실제 코드를 분석해보는 등의 응용시간을 가진다.

 

Blazing Fast Lookup with Hash Tables Crafting Elegant Code 챕터에서는 hash table, stacks, queues 같은 몇가지 자료구조를 더 소개하고, 이들이 어떻게 코드에 영향을 미치는지 살펴본다.

 

Recursively Recurse with Recursion 에서는 컴퓨터 과학의 '앙코르' 같은 개념인 '재귀'를 다룬다. 특정 상황에서 재귀가 얼마나 효율적인 도구인지를 보여준다.

Learning to Write in Recursive 에서는 어떻게 재귀적인 코드를 작성하는지에 대해 배운다.

 

Dynamic Programming 챕터에서는 어떻게 재귀적 코드를 최적화하고 정신나간 코드를 작성하지 않는지를 배운다.

Recursive Algorithms for Speed  챕터에서는 recursion이 Quicksort, Quickselect와 같은 빠른 알고리즘을 만드는 것에 어떻게 이바지하는지 설명한다. 

(저자는 이 두 챕터에서 알고리즘에 대한 개발 능력이 향상될 것이라고 강조한다)

 

Node-Based Data Structures, Speeding Up All the Things, Keeping Your Priorities Straight with Heaps, 
It Doesn't Hurt to Trie, Connecting Everything with Graphs 챕터들은 노드를 기반으로 하고 있는 자료구조들을 소개하고 이를 이용한 다양한 적용 방법을 알려준다.

 

Dealing with Space Constraints  챕터에서는 공간복잡도에 대해 다룬다.  작은 양의 저장공간 혹은 아주 큰 데이터를 다루는 상황에서 공간복잡도가 얼마나 중요한지를 깨닫는다.

 

마지막 Techniques for Code Optimization 챕터에서는 효율적으로 코드를 최적화하는 다양한 테크닉을 기술한다.

 

 

내용을 정리해보니 자료구조와 알고리즘에 대한 전반적인 내용이 머릿속에 그려지는 듯한 느낌이 든다.

얼추 내용을 훑었으니 이제 챕터 하나하나씩 자세하게 살펴보도록 하자.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.