c——二分查找
阿新 • • 發佈:2019-04-23
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) returnmid; 19 else if(a[mid]<=key) left = mid + 1; 20 else right = mid - 1; 21 } 22 return -1; 23 }
c——二分查找