알고리즘
이진탐색알고리즘_순환형태
생각 나무
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로 변경해서 함수 재정의