Skip to content

Search Algorithm

parktaehyun11 edited this page Feb 11, 2018 · 17 revisions

Search Algorithm


탐색(search) 알고리즘

  • 탐색은 기억 공간에 저장된 데이터나 주어진 입력 데이터 집합에서 어떤 조건이나 성질을 만족하는 데이터를 찾는 것을 말한다.
  • 탐색은 정렬된 데이터 집합에서 찾는것과 정렬되지 않은 집합에서 찾는 경우로 구분할수 있는데 정렬된 데이터 집합에서 찾는 이진 탐색과 정렬되지 않은 집합에서 찾는 선형 탐색 알고리즘을 알아보자.

선형탐색(linear search)

  • 선형 탐색(linear search)은 순차 탐색(sequential search)이라고도 하는데, 주어진 데이터 집합에서 원하는 데이터를 처음부터 순차적으로 비교하면서 찾는 방법이다.
  1. 첫 번째 데이터인 15와 찾고자 하는 3이 같은지 비교하는데, 다르므로 다음으로 이동한다.

Image and video hosting by TinyPic

  1. 두 번째 데이터인 11과 찾고자 하는 3이 같은지 비교하는데, 다르므로 다음으로 이동한다.

Image and video hosting by TinyPic

  1. 세 번째 데이터인 1과 찾고자 하는 3이 같은지 비교하는데, 다르므로 다음으로 이동한다.

Image and video hosting by TinyPic

  1. 네 번째 데이터인 3과 찾고자 하는 3이 같은지 비교하는데, 같으므로 원하는 데이터를 찾고 탐색을 종료한다.

Image and video hosting by TinyPic

이진탐색(binary search)

  • 이진 탐색(binary search)은 정렬된 데이터 집합을 이분화하면서 탐색하는 방법이다.
  1. 중간에 위치한 데이터인 11과 찾고자 하는 15가 같은지 비교한다.

Image and video hosting by TinyPic

  1. 중간에 위치한 데이터인 11보다 찾고자 하는 데이터인 15가 크므로 중간 데이터 11의 오른쪽에 위치한 데이터들에 대해 이진 탐색을 수행한다.

Image and video hosting by TinyPic

  1. 탐색 영역의 중간에 위치한 데이터인 17과 찾고자 하는 15가 같은지 비교한다.

Image and video hosting by TinyPic

  1. 중간에 위치한 데이터인 17보다 찾고자 하는 데이터인 15가 작으므로 중간 데이터 17 왼쪽에 위치한 데이터들에 대해 이진 탐색을 수행한다.

Image and video hosting by TinyPic

  1. 탐색 영역의 중간에 위치한 데이터인 15와 찾고자 하는 15가 같은지 비교한다. 원하는 데이터이므로 탐색을 종료한다.

Image and video hosting by TinyPic

Clone this wiki locally