[关闭]
@chawuciren 2018-10-02T13:12:06.000000Z 字数 627 阅读 584

CS10

未分类


  1. 本质上是师兄的代码,略改
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int BinSearch(int sorted_arr[],int Len,int key);
  4. int main()
  5. {
  6. int key=1;
  7. int result=1;
  8. int n=1;
  9. int i=0;
  10. printf("请输入数组长度\n");
  11. scanf("%d",&n);
  12. int sorted_arr[n];
  13. printf("请输入数组元素\n");
  14. while(i<n)
  15. {
  16. scanf("%d",&sorted_arr[i]);
  17. i=i+1;
  18. }
  19. printf("输入检索值\n");
  20. scanf("%d",&key);
  21. result=BinSearch(sorted_arr,5,key);
  22. if (result=-1)
  23. {
  24. printf("not found");
  25. }
  26. else
  27. {
  28. print ("%d",result);
  29. }
  30. return 0;
  31. }
  32. int BinSearch(int sorted_arr[],int Len,int key)
  33. {
  34. int low=0;
  35. int high=Len-1;
  36. int mid=-1;
  37. while (low<=high)
  38. {
  39. mid=(low+high)/2;
  40. if (sorted_arr[mid]>key)
  41. {
  42. high=mid-1;
  43. }
  44. if(sorted_arr[mid]<key)
  45. {
  46. low=mid+1;
  47. }
  48. if(sorted_arr[mid]==key)
  49. {
  50. return mid;
  51. }
  52. }
  53. return -1;
  54. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注