데이터 구조와 알고리즘은 문제를 해결하기 위한 패턴이라 할 수 있으며, 이를 잘 활용하면 어려운 문제를 간단하면서도 세련되게 해결할 수 있다. 반면, 데이터 구조에 대한 명확한 이해가 없다면 현대 프로그래밍 언어의 특징이라 할 수 있는 다양한 데이터 타입의 장단점을 파악하기 어려우며, 어떤 상황에서 어떤 데이터 구조를 사용해야 할지 판단할 수 없고, 결국 프로그램의 성능 문제로 남게 된다.
이 책은 스위프트 표준 라이브러리에서 제공하는 코어 데이터의 구조와 알고리즘, 큐, 스택, 리스트, 해시 테이블 등 보편적으로 사용되는 데이터 구조와 알고리즘을 소개한다. 또한 다양한 정렬 알고리즘의 개요를 소개하고 각 알고리즘 성능의 장단점과 데이터 입력 크기에 따른 성능 차이를 비교 분석한다. 스위프트 언어를 통해 구현할 수 있는 다양한 트리 데이터 구조와 알고리즘, 고급 검색 기법을 설명하고, 알고리즘의 성능과 효율성을 한눈에 파악할 수 있는 그래프 구현 방법을 소개한다.
이 책의 목적은 데이터 구조와 알고리즘을 통해 모두들 해결이 어렵다고 말하는 문제에서 패턴 또는 실마리를 찾고, 이를 바탕으로 일상적인 개발 업무에서 즉각적으로 활용할 수 있는 다양한 해법 또는 응용 프로그램을 떠올리게 하는 것이다.