질문 정리 찾기 (1) 2 분 찾기
찾기 는 정렬 과 밀접 한 관 계 를 가 질 수 없 는 화제 입 니 다.
일반적으로 정렬 을 해 야 검색 이 완 료 됩 니 다. 정렬 이 없 으 면 모든 데 이 터 를 한 번 씩 옮 겨 다 녀 야 검색 이 완 료 됩 니 다. 그렇지 않 으 면 요소 가 누락 되 지 않 았 다 는 보장 이 없습니다.흔히 볼 수 있 는 검색 알고리즘 은 2 분 검색 이다.
2 분 검색 을 사용 하 는 전 제 는 찾 아야 할 배열 이 정렬 되 어야 한 다 는 것 이다.
그것 의 main 함 수 는 다음 과 같다.
출력 결과: 7
즉, 27 은 배열 의 5, 6, 7 위 에 있 고 2 분 검색 출력 결 과 는 7 위 에 있다.현재 하나의 요 구 를 약간 추가 합 니 다. 찾 으 려 는 숫자 가 배열 에 여러 개 있 을 때 출력 에 처음 나타 난 숫자 를 지정 하면 어떻게 고 쳐 야 합 니까?이렇게 고 쳐 써 도 되 고,
int binary_search(int* arr, int st, int ed, int number)
//arr , 。st ,ed ,number 。
{
// The array should be sorted
int mid=0;
while(st<=ed)// st<ed, , , :{0,2} 2 ,{2} 2
{
mid = st + (ed-st)/2;// (st+ed)/2 。
if(arr[mid]<number)
{
st = mid+1;
}
else if(arr[mid]>number)
{
ed = mid-1;
}
else
{
return mid;
}
}
return -1;
}
최근 에 또 2 점 을 써 서 찾 았 는데, 이번 에는 재 귀적 인 버 전 을 썼 다.도 서 치 워 크 는 100% bug free 와 효율 최적화 과정 을 진행 했다.
int main()
{
int sorted_arr[10]={4,6,9,11,12,27,27,27,29,30};
std::cout<<binary_search(sorted_arr, 0, 9, 27)<<std::endl;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.