-
-
그림으로 정리한 알고리즘과 자료구조 - 자바 + 파이썬
조민호 지음 / 정보문화사 / 2018년 8월
평점 :
절판
컴퓨터공학에 관심있는 사람에게는 교과서 같은 책일 것 같아요.
알고리즘에 대한 내용뿐 아니라 컴퓨터에 대한 기본 개념과 원리부터 차근차근 설명하는 방식이라서 처음 배우는 사람에게 도움이 되는 책이에요.
책의 구성이 깔끔해요.
우선 이 책으로 어떻게 공부해야 하는지 방법을 7 step으로 알려줘요.
1 step : 컴퓨터가 어떻게 개발되었는지 컴퓨터의 구성 원리가 무엇인지 파악하기
2 step : 알고리즘이란 무엇인지 이해하기
3 step : 다양한 예제를 통해 주어진 과제를 해결하는 연습하기 (알고리즘의 개발)
4 step : 알고리즘의 개발 및 구현에 필요한 다양한 데이터 처리 기술 익히기 (자료구조의 이해)
5 step : 알고리즘의 개발에 기초가 되는 정렬 및 검색 알고리즘에 대한 모든 것을 알아보고 자바와 파이썬 구현하기
6 step : 현재 가장 많이 사용되는 검색 알고리즘을 그림을 통해 내용 파악하기
7 step : 컴퓨터 역사에 남을 유명한 알고리즘 내용과 알고리즘 활용을 위한 추가 지식을 공부하기
교과서처럼 개념 설명 후 파이썬과 자바를 이용해 해당 알고리즘을 구현해볼 수 있어요. 소스는 정보문화사 홈페이지(http://www.jinfopub.co.kr)에서 다운로드하여 실습할 수 있어요. 각 장에서 학습한 내용은 [Note]와 [요약] 부분에서 다시 한번 정리하면서 개념 정리를 할 수 있어요.
알고리즘은 계속 진화합니다. 예전에는 검색이나 정렬이 알고리즘에서 중요한 위치를 차지했지만, 이제는 검색이나 정렬은 어느 정도 최적화된 분야라고 할 수 있습니다. 최근에는 검색이나 정렬보다 실제 컴퓨터 활용 단계에서 수행되어야 하는 작업에 대한 알고리즘이 중요해지고 있다고 합니다. 그 대표적인 예가 구글의 '랭킹 알고리즘'입니다.
알고리즘의 우수함을 식별하는 기준은 정확성, 작업량, 메모리 사용량, 단순성, 최적성입니다. 얼마나 정확하게 동작하고, 적은 연산을 수행하며, 적은 메모리를 사용하는지, 또한 알고리즘의 순서가 얼마나 단순하며, 최적화되어 있는지를 따져봅니다.
이 책을 알고리즘과 자료구조의 기본을 배울 수 있는 교재입니다. 알고리즘 공부에 도움이 되는 웹 사이트에서 매일 문제를 하나씩 풀어가는 훈련이 중요하다고 합니다. 알고리즘에 익숙해져야 프로그래밍 능력도 향상됩니다. 저자의 마지막 당부는 너무 어려운 알고리즘 문제에 매달리지 말라는 것입니다. 실제 사용 환경에서는 어려운 상황이 자주 발생하지 않으니까, 알고리즘에 대한 흥미를 잃지 않는 선에서 알고리즘 공부를 하라는 것입니다. 아무리 쉽게 설명해도 단번에 이해할 수 있는 건 아니니까, 차근차근 익혀가면 좋을 것 같습니다.