자료들의 집합을 배열이라고 생각하자.
수 많은 자료 중 원하는 값을 찾기 위해서(=검색) 우리가 고려해야 할 것은 무엇일까? 최고의 효율을 내는 방법은 무엇일까?
우리는 이 방법을 알고리즘이라 표현할 수 있다.
문제에 맞는 최적의 알고리즘을 찾는 것, 그리고 그 방법을 애플리케이션에 최적화시켜 적용하는 것이 개발자가 갖춰야 할 중요한 소양 중 하나이다.
예를 들어보자.
숫자가 무작위로 섞여 있고 그 중 50을 찾아야 한다면?
만약, 정렬이 되어있지 않다면 첫번째 인덱스부터 순서대로 자료를 확인해야 한다. 어디에 무엇이 있는지 아무런 정보가 없기 때문이다. 이것이 선형 검색이다.
정렬이 되어있을 경우, 수 많은 경우의 수가 있지만 강의에서 보여준 예로 이진 검색이 있다. 배열 중간 인덱스부터 시작하여 찾고자 하는 값과 비교하며, 그보다 작은(작은 값이 저장되어 있는) 인덱스 또는 큰 (큰 값이 저장되어 있는) 인덱스로 이동을 반복한다.