Busca binária
Exemplo de introdução
A: Quanto você comprou seus sapatos?
B: palpite
A: 1000?
B: Não, é maior.
A: 500?
B: Maior
A: 250?
B: É baixo
...
Repetidamente, eliminando metade de uma vez, você definitivamente obterá o valor correto no final
Busca binária
Vantagens: menos tempo de comparação, velocidade de pesquisa rápida e bom desempenho médio.
Desvantagens: O array pesquisado deve ser um array ordenado.
Complexidade de tempo: O (logN)
#include<stdio.h>
int binary_search(int key,int a[],int n)
{
int high,mid,low,count;
low=0;
high=n-1;
count=0;
while(low<=high){
mid=(high+low)/2;
if(a[mid]==key){
printf("查找成功,a[%d]=%d",mid,key);
count=1;
break;
}
else if(a[mid]<key)
low=mid+1;
else
high=mid-1;
}
if(count==0)
printf("查找失败");
return 0;
}
int main(){
int i,n,a[100],key;
printf("请输入数组长度:\n");
scanf("%d",&n);
printf("请输入数组元素:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("输入你要查找的元素:\n");
scanf("%d",&key);
binary_search(key,a,n);
return 0;
}