그림으로 이해하는 알고리즘 : 알고리즘과 자료 구조, 쉽고 재미있게 시작하자!

그림으로 이해하는 알고리즘 : 알고리즘과 자료 구조, 쉽고 재미있게 시작하자!

$22.00
Description
알고리즘과 자료 구조, 이렇게 쉽게 표현하고 이해할 수 있다고?
전 세계 250만 다운로드 ‘알고리즘 도감’ 앱을 책으로 엮은 일본 아마존 스테디셀러, 개정2판!
알고리즘은 같은 목적을 달성하더라도 서로 다르다. 어떤 알고리즘은 실행 시간이 짧지만 메모리를 많이 사용하고, 어떤 알고리즘은 실행 시간이 길지만 메모리를 적게 사용한다. 다양한 알고리즘을 안다는 건 프로그램을 만들 때 선택지가 늘어난다는 의미다. 효율적인 알고리즘을 실행하기 위해서는 그에 맞는 적절한 자료 구조를 사용해야 한다. 즉, 상황에 맞게 최적의 알고리즘과 자료구조를 선택할 수 있는 능력은 좋은 프로그래머가 되기 위한 조건 중 하나다.
이 책은 ‘알고리즘 도감’이라는 애플리케이션을 기반으로 작성했다. 앱은 애니메이션을 사용해 알고리즘의 동작을 설명하는데, 이 책은 그림을 충분히 사용해 동작하는 앱만큼 알기 쉽게 만들었다. 또한 앱에는 없는 ‘알고리즘이란 무엇인가’, ‘알고리즘의 계산 시간’, ‘그래프의 기초’ 같은, 알고리즘 학습 전 알아야 하는 기본 내용을 새롭게 작성했다. 개정2판에는 1판과 앱에서 다루지 않은 ‘데이터 압축’을 추가하고 ‘최소 신장트리’, ‘매칭’ 같은 그래프 문제와 ‘문자열 매칭’을 새로 추가했다.

저자

이시다모리테루,미야자키슈이치

저자:이시다모리테루
프리랜서엔지니어,2011년교토대학대학원석사과정수료.여러벤처기업을거쳐프리랜서로독립한뒤2016년엔지니어용학습앱'알고리즘도감'을출시.출시후1년만에전세계50만다운로드를달성하고'애플이뽑은2016년최고의앱'에선정되었다.

저자:미야자키슈이치
효고현립대학정보과학연구과교수.1998년규슈대학대학원박사과정을수료하고(박사(공학)),1998년부터교토대학정보학연구과조교,2002년부터동대학학술정보미디어센터조교수,2007년부터동대학부교수를거쳐2022년부터교수로재직중이다.알고리즘과계산복잡도이론,특히최근에는근사알고리즘과온라인알고리즘을연구하고있다.주요저서로는『그래프이론입문-기초와알고리즘』(2015,모리키타출판),『안정적매칭의수학과알고리즘』(2018,현대수학사),『알고리즘이론의기초』(2019,모리키타출판)가있다.

역자:이동규
도쿄에살면서라인재팬의데이터엔지니어로일하고있다.컴퓨터학을석사까지공부하고개발자와데이터엔지니어로일한지어느덧10년이넘었다.번역하며공부하는것이즐거워꾸준히번역활동을하고있다.지은책으로는『함수형언어산책』이있으며,옮긴책으로는『15단계로배우는도커와쿠버네티스』(제이펍,2020),『모두를위한리눅스프로그래밍』(제이펍,2018),『처음만나는파이썬』(제이펍,2017),『자바스크립트와Node.js를이용한웹크롤링테크닉』(제이펍,2016),『모두의리눅스』(길벗,2021)등이있다.

목차


서장알고리즘의기본
0-1알고리즘이란?
0-2계산시간측정방법

1장데이터구조
1-1데이터구조란?
1-2리스트
1-3배열
1-4스택
1-5큐
1-6해시테이블
1-7힙
1-8이진탐색트리

2장정렬
2-1정렬이란?
2-2버블정렬
2-3선택정렬
2-4삽입정렬
2-5힙정렬
2-6병합정렬
2-7퀵정렬

3장배열탐색
3-1선형탐색
3-2이진탐색

4장그래프
4-1그래프란?
4-2너비우선탐색
4-3깊이우선탐색
4-4벨먼-포드알고리즘
4-5다익스트라알고리즘
4-6A*
4-7크루스칼알고리즘
4-8프림알고리즘
4-9매칭알고리즘

5장보안알고리즘
5-1보안알고리즘
5-2암호의기본
5-3해시함수
5-4대칭키암호방식
5-5공개키암호방식
5-6하이브리드암호방식
5-7디피-헬먼키교환법
5-8메시지인증코드
5-9디지털서명
5-10디지털인증서

6장클러스터링
6-1클러스터링이란?
6-2k-평균알고리즘

7장데이터압축
7-1데이터압축과부호화
7-2런렝스부호화
7-3유일복호가능부호
7-4순시부호
7-5하프만코드

8장그외알고리즘
8-1유클리드호제법
8-2소수판별법
8-3문자열매칭
8-4커누스-모리스-프랫알고리즘
8-5페이지랭크
8-6하노이의탑

찾아보기

출판사 서평

읽는것만으로충분하다!
쉽고빠르게이해하는알고리즘과자료구조!

알고리즘은계산이나작업을수행하는순서이자,어떤문제를컴퓨터로푸는순서입니다.‘나열된수를작은순서로정렬하기’,‘출발지에서목적지까지최단경로찾기’같은문제를풀수있습니다.컴퓨터는정해진기본명령,즉덧셈이나메모리주소에값을보존하는명령은빠르게수행하지만,복잡한명령은실행하지못합니다.컴퓨터에게'나열된수를작은순서로정렬하기'같은문제는복잡한작업이죠.이복잡한작업순서를컴퓨터가실행할수있도록기본명령을조합해작성하는것이바로알고리즘설계입니다.

이책은기본적인알고리즘33개와자료구조7개의동작원리를100%그림으로,쉽고친절하고자세하게설명합니다.이책을통해알고리즘이어떤논리로,어떤과정으로,어떻게동작하는지,그프로세스를그림으로따라가면서이미지화할수있고,이는알고리즘의아이디어나구조를이해하는데큰도움이될것입니다.좋은코드를작성하기위해반드시알아야하는재미있는알고리즘의세계를그림으로쉽고즐겁게배워봅시다.

[지은이의한마디]
이책은입문자도간단하게알고리즘과자료구조를이해할수있도록만들었습니다.알고리즘이란문제를해결하기위한계산의실행순서를말하며,컴퓨터프로그램의전단계에해당합니다.같은문제를컴퓨터로풀더라도답이나올때까지의계산시간은효율적인알고리즘을사용하는경우와그렇지않은경우에따라크게다릅니다.그리고그에맞는적절한자료구조를사용하는것도중요합니다.

이책은알고리즘의입문에해당합니다.알고리즘의세계는더넓고깊습니다.이책을읽고알고리즘에흥미가생겼다면더깊이파고들어가보시기를바랍니다.

[옮긴이의한마디]
계속새롭게등장하는알고리즘과용어를이해하고응용하는것은개발자의숙명입니다.개발자로서스트레스없이살아가기위해서는새로운용어나알고리즘이나오더라도쉽게이해할수있다는자신감이무척중요합니다.막상이해하면별거아니라는자신감으로누구보다먼저정면으로부딪쳐맞서야합니다.이러한자신감을가지기위해서는대표적인알고리즘을확실히알아두는것이좋습니다.

또한,알고리즘의구체적인부분을살펴보기에앞서추상적으로그원리를이해하는것이좋습니다.특히알고리즘이관리하는상태의변화를그림과숫자로추적하면서이해하는것이상당히도움이됩니다.그래서알고리즘을공부하려는분에게다른책보다이책을먼저읽기를권하고싶습니다.그림의도움을받아쉽고빠르게이해한뒤더구체적인내용을추가로학습하는접근법을추천합니다.