이진 정렬에 대하여 알아보기
오늘은 이진 정렬에 대하여 알아보겠습니다.
개요
자료의 가운데에 있는 항목을 키값과 비교하여 키값이 더 크면 오른쪽 부분을 검색하고, 키값이 더 작으면 왼쪽 부분을 검색하는 방법을 이진 탐색이라고 합니다.
가운데에 있는 값을 기준으로 왼쪽과 오른쪽으로 나누어 검색하므로 이분 탐색이라고도 합니다.
키를 찾을 때까지 이진 탐색을 재귀적으로 반복하며 검색 범위를 절반으로 줄여가므로 더 빠르게 검색하게 됩니다.
이진 탐색은 자료가 정렬되어 있는 산태에서만 사용할 수 있습니다.
알고리즘
binary(arr[],l,h,k){
middle <- (l+h)/2;
if(k = arr[middle]) then{
return i;
}
else if(k<arr[middle])then{
binary(arr[],l,middle-1,k);
}
else if(k>arr[middle])then{
binary(arr[],middle+1,h,k);
}
else{
return -1;
}
}
다른 검색방법에 비하여 성능은 좋지만, 삽입이나 삭제를 수행해도 항상 정렬상태로 두어야 되기 때문에 별도의 작업이 필요합니다.
Written on June 12, 2018