二分法的前提是:数据量就大,比如在一个很长的字符串中查某个字符;还有就是查找的数据必须是排好序的。
递归
int search(int data, int[] your_array, int low, int high)
{
int mid = (low+high)/2;
if (your_array[mid] > data)
{ return search(data, your_array, mid+1, high); }
else if (your_array[mid] < data)
{ return search(data, your_array, low, mid-1); }
else if (your_array[mid] == data)
{ return your_array[mid];}
else return null;
}
迭代
int search(int data, int[] your_array)
{
int low = 0;
int high = your_array.Length;
int mid;
while(low != high)
{
mid = (low + high)/2;
if (your_array[mid] == data) return data;
else
{
if (your_array[mid] > data) { high = mid - 1;}
else if (your_array[mid] < data) { low = mid + 1;}
}
}
return null;
}
分享到:
相关推荐
用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch
C++ 二分查找法
用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索
该程序是我写的博客“一起talk C栗子吧(第二十五回:C语言实例-二分查找)”的配套程序,共享给大家使用
在已排序好的数组T中运用二分查找的方法查找目标数的位置。 根据实验要求和伪码信息,用二分查找的方法在输入的排序好的数组T中查找目标数的位置。若目标数在数组中输出下标位置,不在则输出零。
java 二分查找法的实现方法 java 二分查找法的实现方法
假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。
二分查找法 课件 描述了二分查找的前提条件 和基本思想,算法过程
matlab实现二分查找,里面具有详尽的代码和注释,保证一看就懂
编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。
二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下如果用逐个查表比较的方法来查温度 会...
二分查找法进阶.zip
二分查找法.pptx
项目使用过的二分查找法源码
c++ 二分查找法,test ok
二分查找法简要示例代码,下载后使用PYTHON运行。如此这般、
Python 算法 19二分查找法.mp4
数据结构之二分查找法,供大家学习数据结构时参考。作者是一名大学生,如有错误,敬请原谅!