참고: Data Structures and Algorithm Analytics in Java

N개의 숫자가 있을 때 k번째로 큰 수를 찾는 방법은?

정사각면체로 단어 찾기 퍼즐이 있을 때 모든 단어를 찾는 방법은?

직관적으로 떠오르는 방법을 사용하면, 데이터가 많아질수록 엄청난 연산 시간이 걸린다. 그런데 알고리즘을 잘 짜면 데이터가 엄청 많아도 불과 몇초 이내에 해결할 수 있다. (나도 아직 생각나지 않는다..)

동작하는 코드는 작성하는 것으로는 충분하지 않다.

An important concept is that, in many problems, writing a working program is not good enough. If the program is to be run on a large data set, then the running time becomes an issue. Throughout this book we will see how to estimate the running time of a program for large inputs and, more important, how to compare the running times of two programs without actually coding them. We will see techniques for drastically improving the speed of a program and for determining program bottlenecks. These techniques will enable us to find the section of the code on which to concentrate our optimization efforts.