7.二分查找.c 689 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <stdio.h>
  2. binarySearch(int a[], int n, int key){
  3. int low = 0;
  4. int high = n - 1;
  5. while(low<= high){
  6. int mid = (low + high)/2;
  7. int midVal = a[mid];
  8. if(midVal<key)
  9. low = mid + 1;
  10. else if(midVal>key)
  11. high = mid - 1;
  12. else
  13. return mid;
  14. }
  15. return -1;
  16. }
  17. int main(){
  18. int i, val, ret;
  19. int a[8]={-32, 12, 16, 24, 36, 45, 59, 98};
  20. for(i=0; i<8; i++)
  21. printf("%d\t", a[i]);
  22. printf("\n请输人所要查找的元素:");
  23. scanf("%d",&val);
  24. ret = binarySearch(a,8,val);
  25. if(-1 == ret)
  26. printf("查找失败 \n");
  27. else
  28. printf ("查找成功 \n");
  29. return 0;
  30. }