二分搜索

二分搜索算法详解
本文详细介绍了二分搜索算法的基本原理及其实现方式,包括如何在已排序的数组中查找特定值,并提供了具体的代码示例。
二分搜索:将一个排好序的数组,不断地分成两半,然后在可能包含我们所要查找的值的那一部分搜索。
    • 要求数组必修是排序好的
    • 假如数组有两个及两个以上的数字,那么二分算法将不能确定该返回那个值。
    • int find(int num,int a[],int len)//num将要搜索的值  a[]要查找的值  函数的返回的是找到的元素的下标
      {
          int min = 0, max = len-1;
          while (min<=max)
          {
              int zhong = (min+max)/2;
              if (a[zhong]== num)
              {
                  return zhong;
              }
              else if (a[zhong]<num)
              {
                  min = zhong + 1;
              }
              else
              {
                  max = zhong -1;
              }
          }
          return len;//没找到 返回数组的长度
      }  
    • int find(int numint a[], int min,int max)//num将要搜索的值  a[]要查找的值  函数的返回的是找到的元素的下标
      {
          if(min>max)
          {
              return max;
          }
          int zhong = (min + max) / 2;
          if (a[zhong] == num)
          {
              return zhong;
          }
          else if (a[zhong]<num)
          {
              min = zhong + 1;
              find(num,amin,max);
          }
          else
          {
              max = zhong - 1;
              find(numaminmax);
          }
      }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值