멀티미디어과학과 Code it 동아리 2011.1.20발표자 : 09학번 하예영Binary search
이원탐색 또는이진검색서로 다른 수들이 일정하게 정렬된 배열을 거듭 이분하여 찾고자 하는 값을 검색하는 방법Divide and Conquer 알고리즘의 한 예Binary search란?
Binary search 알고리즘Index     0       1        2       3        4       5        6        7        8          9 2     3     4     5     6     7     8     9     10    111. 이미 정렬되어 있는 배열이 있다고 가정한다.           (즉, list[0] ≤list[1] ∙∙∙ ≤list[n-1]과 같이 순서대로 저장)2. left, right는 탐색하고자 하는 배열의 왼쪽, 오른쪽 끝 지점을 가리킨다. (left = 0, right = 9)3. middle = (left + right)/24. list[middle]과 searchnum(검색값)을 비교
Binary search 알고리즘(Cont’d)Index     0       1        2       3        4       5        6        7        8          9 2     3     4     5     6     7     8     9     10    115.  searchnum<list[middle] : right = middle – 1searchnum=list[middle] : middle 반환searchnum>list[middle] : left = middle + 16.  searchnum을 찾지 못한 경우 middle값을 다시 계산하여 탐색을 계속한다.
Binary search 예제Index     0       1        2       3        4       5        6        7        8          9 2     3     4     5     6     7     8     9     10    11step 1 :right = 9middle = 4left = 0step 2 :left = 0middle = 1right = 3step 3 :right = 3left = 2FOUND!middle = 2
맨 앞부터 순서대로 값을 탐색하는  linear search (선형 탐색)에 비해 효율적이다.                O(n) > O(log2n)Binary search와 Linear search비교해야 할 값이 2배로 증가하더라도 한 번만 더 찾으면 된다. ex)1024개 -> 최대 10번     2048개 -> 최대 11번linear searchbinary search
C로 쓴 자료구조론, Horowitz, Sahni, Anderson-Freed위키피디아http://en.wikipedia.org/wiki/Binary_search참고

110120 binary search

  • 1.
    멀티미디어과학과 Code it동아리 2011.1.20발표자 : 09학번 하예영Binary search
  • 2.
    이원탐색 또는이진검색서로 다른수들이 일정하게 정렬된 배열을 거듭 이분하여 찾고자 하는 값을 검색하는 방법Divide and Conquer 알고리즘의 한 예Binary search란?
  • 3.
    Binary search 알고리즘Index 0 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 10 111. 이미 정렬되어 있는 배열이 있다고 가정한다. (즉, list[0] ≤list[1] ∙∙∙ ≤list[n-1]과 같이 순서대로 저장)2. left, right는 탐색하고자 하는 배열의 왼쪽, 오른쪽 끝 지점을 가리킨다. (left = 0, right = 9)3. middle = (left + right)/24. list[middle]과 searchnum(검색값)을 비교
  • 4.
    Binary search 알고리즘(Cont’d)Index 0 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 10 115. searchnum<list[middle] : right = middle – 1searchnum=list[middle] : middle 반환searchnum>list[middle] : left = middle + 16. searchnum을 찾지 못한 경우 middle값을 다시 계산하여 탐색을 계속한다.
  • 5.
    Binary search 예제Index 0 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 10 11step 1 :right = 9middle = 4left = 0step 2 :left = 0middle = 1right = 3step 3 :right = 3left = 2FOUND!middle = 2
  • 6.
    맨 앞부터 순서대로값을 탐색하는 linear search (선형 탐색)에 비해 효율적이다. O(n) > O(log2n)Binary search와 Linear search비교해야 할 값이 2배로 증가하더라도 한 번만 더 찾으면 된다. ex)1024개 -> 최대 10번 2048개 -> 최대 11번linear searchbinary search
  • 7.
    C로 쓴 자료구조론,Horowitz, Sahni, Anderson-Freed위키피디아http://en.wikipedia.org/wiki/Binary_search참고