알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것이다. 알고리즘을 설계하기 위해서는 우선 해야 할 작업을 명확하게 면시해야 한다. 출력과 입력에 의해 "무엇을"하는지에 대해 명시할 수 있다.
- 명확성 : 모호하지 않고 이해하기 쉬워야한다. 자세한 것과는 다르다.
- 효율성 : 입력의 크기가 충분히 클 때 알고리즘의 효율성에 따라 수행 시간이 크게 차이날 수 있다.
자원, 메모리, 시간을 효율적으로 관리하기 위해서는 좋은 알고리즘이 필요하다.
- 네비게이션 구현, ATM 기기, 신용카드, 인터넷 검색