バイナリナビゲーションアルゴリズム
1317 ワード
バイナリ探索とは?
バイナリサーチ(二分サーチ)とは、サーチする材料を半分に分け、中間値をサーチするターゲット値と比較することで、材料のサーチをすばやく見つけることができることを意味します.ただし、バイナリナビゲーションを行うには、データをソートする必要があります.
バイナリナビゲーションを行うデータが上記の順序で並べられていると仮定すると、数値7を検索するバイナリナビゲーションプロセスを見てみましょう.
最初のアドレス
中間位置2号面アドレスの値5が検索する値であることを確認します.7は5より大きいので、検索する値は3~4アドレスの範囲です.検索範囲
ソースコード
#include
main(){
int target,low,high,mid;
int data[10] = {2,3,5,7,8,9,11,13,15,20};
scanf("%d",&target);
low = 0; //search대상범위의 첫번째값
high = 9; //search대상범위의 마지막값
while(1){
if(low<=high){
mid=(low+high)/2; //mid값 계산 (소수점이하는 자동으로 절삭)
if(target==data[mid]){
printf("%d는 %d번째 index에 있습니다.",target,mid);
break;
}
if(target<=data[mid]){
high=mid; //mid값 위 절삭
}else{
low=mid; //mid값 아래 절삭
}
}else{
printf("%d는 존재하지 않습니다.",target);
break;
}
}
Reference
この問題について(バイナリナビゲーションアルゴリズム), 我々は、より多くの情報をここで見つけました https://velog.io/@kdo6301/이진탐색-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol