알고리즘

이진탐색알고리즘_순환형태

생각 나무 2020. 3. 17. 20:46

BinarySearch(A[],Left,Right,x)

{

if(Left>Right) return -1;

Mid=(left+right)/2;

if(x==A[mid]) return Mid;

else if(x<A[mid])BinarySearch(A,Left,Mid-1,x)

  else BinarySearch(A,Mid+1,Right,x);

}

// 왼쪽 끝에 값을 Left, 오른쪽끝 값을 Right로 하는 x를 찾는 배열 A[] 함수 -> BinarySearch

Left > Right  -1을 반환; (** -1 -> false로 탐색 실패)

Mid에 중간값을 할당;

중간값이 x같으면 중간값을 반환;

그렇지않고 x가 중간값보다 작으면 Right -> Mid-1로 변경해서 BinarySearch를 재정의;

그렇지않으면(**x가 같거나 작지않으면 큰 경우) Left -> Mid+1로 변경해서 함수 재정의

'알고리즘' 카테고리의 다른 글

합병 정렬 알고리즘  (0) 2020.03.30
분할함수 알고리즘  (0) 2020.03.19
퀵 정렬  (0) 2020.03.19
이진탐색 알고리즘_반복형태  (0) 2020.03.19
순차 탐색 알고리즘  (0) 2020.03.17