http://news.csdn.net/a/20100423/218099.html
引用
好,下面就做一个二分查找的测验
我跟你一样(如果你是这么想的),想马上就试一试。(好啦,不是马上。先看完这篇文章!)我相信看这篇文章的人都知道什么是二分查找算法,即使你不知道,上面引用的本特利的描述也应该够了。请你打开编辑器,编写一个二分查找例程。什么时候觉得没有任何问题了,保留那个版本。然后测试,然后通过在下面留言的方式告诉我你是不是第一次就做对了。我们肯定能打破本特利10%的纪录吗?
规则如下。
1.使用你喜欢的任何编程语言。
2.不要剪切粘贴或以任何方式复制别人的代码。甚至在你写完之前,都不要参考其他的二分查找代码。
3.甚至于我不得不强调,别调用bsearch(),或使用其他瞒天过海的手法
4.时间自己来定:5分钟不短——只要你能保证写完写对;8小时不长——只要你愿意(而且有那么多闲工夫)。
5.可以使用编译器消除一些无意识的错误,如语法错误或变量初始化失败,但……
6.在确定程序正确之前不要测试。
7.最后,也是最重要的:如果决定参与这次测验,就必须报告。成功也好,失败也罢,甚至半途而废也要给我个话儿。否则,就无法保证测验结果的准确性了。
实话实说。。。我第一次的代码:
public static int search(int[] array,int start,int end,int T) {
int mid = 0;
int len=end-start+1;
if(len==2){
System.err.println("the number not in this array!");
return -1;
}
if (len % 2 == 0) {
mid = start+len / 2;
} else {
mid = start+(len - 1) / 2;
}
if(T==array[mid]){
return mid;
}
return search(array,T>array[mid]?mid:start,T<array[mid]?mid:end,T);
}
public static void main(String[] args) {
int[] array = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(search(array,0,array.length,0));
}
就不贴我改过的代码了。。。看来我也属于那10%。。。。杯具啊!
分享到:
相关推荐
C++ 二分查找法
用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch
二分查找法 学习过程 基础查找方法 学习高级查找方法的必学基础法。
用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索
二分查找法 课件 描述了二分查找的前提条件 和基本思想,算法过程
java 二分查找法的实现方法 java 二分查找法的实现方法
在已排序好的数组T中运用二分查找的方法查找目标数的位置。 根据实验要求和伪码信息,用二分查找的方法在输入的排序好的数组T中查找目标数的位置。若目标数在数组中输出下标位置,不在则输出零。
该程序是我写的博客“一起talk C栗子吧(第二十五回:C语言实例-二分查找)”的配套程序,共享给大家使用
matlab实现二分查找,里面具有详尽的代码和注释,保证一看就懂
假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。
编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。
//文件名:exp9-2.cpp #include #define MAXL 100 //定义表中最多记录个数 typedef int KeyType; typedef char InfoType[10]; typedef struct { KeyType key;
关于递归的算法文档,同时讲解二分查找,以及几个实例代码算法可供参考。
最经典的二分法查找数字,快速简便,但是要求已有的数据已经排序
顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
二分查找,完整工程文件,源代码,VS2010
二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下如果用逐个查表比较的方法来查温度 会...
二分查找基本教程,适合入门noip的学生,非常简单的讲述了二分查找的基本算法,适合入门!
java实现二分查找,包含时间复杂度的计算