1. 程式人生 > >c——二分查找

c——二分查找

pan 思路 col main 返回 == printf 不存在 ++

思路:

1、輸入:數組長度n,待查找的有序數組a[],要找的元素key

2、輸出:待查找元素在數組中的位置,若不存在返回-1

3、實現:三個指針,left、mid、right

 1 #include<stdio.h>
 2 int binarySearch(int a[],int key,int n);
 3 int main(){
 4     int n,i,key,result,a[100];
 5     scanf("%d",&n);
 6     scanf("%d",&key);
 7     for(i = 0;i<n;i++){
8 scanf("%d",&a[i]); 9 } 10 result = binarySearch(a,key,n); 11 printf("%d",result); 12 } 13 int binarySearch(int a[],int key,int n){ 14 int left = 0; 15 int right = n-1; 16 while(left<=right){ 17 int mid = (left+right)/2; 18 if(a[mid]==key) return
mid; 19 else if(a[mid]<=key) left = mid + 1; 20 else right = mid - 1; 21 } 22 return -1; 23 }

c——二分查找