您的位置:首页 > 编程语言

写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回 - 1.(折半查找)

2019-03-26 22:56 211 查看
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int bin_search(int arr[], int key, int left, int right)
{
 while (left <= right)
 {
  int mid = (left + right) / 2;
  if (arr[mid]>key)
  {
   right = mid - 1;
  }
  else if (arr[mid]<key)
  {
   left = mid + 1;
  }
  else
  {
   return mid;
  }
 }
 return -1;
}
int main()
{
 int arr[] = { 1, 2, 3, 4, 5, 6, 8, 9, 10, 11 };
 int sz = sizeof(arr) / sizeof(arr[0]);
 int ret = bin_search(arr, 10, 1, 11);
 if (ret == -1)
  printf("找不到\n");
 else
  printf("所查找数在数组arr中下标为:%d\n", ret);
 system("pause");
 return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐