你会二分查找法么?

[url]http://news.csdn.net/a/20100423/218099.html[/url]
[quote]好,下面就做一个二分查找的测验

我跟你一样(如果你是这么想的),想马上就试一试。(好啦,不是马上。先看完这篇文章!)我相信看这篇文章的人都知道什么是二分查找算法,即使你不知道,上面引用的本特利的描述也应该够了。请你打开编辑器,编写一个二分查找例程。什么时候觉得没有任何问题了,保留那个版本。然后测试,然后通过在下面留言的方式告诉我你是不是第一次就做对了。我们肯定能打破本特利10%的纪录吗?

规则如下。

1.使用你喜欢的任何编程语言。

2.不要剪切粘贴或以任何方式复制别人的代码。甚至在你写完之前,都不要参考其他的二分查找代码。

3.甚至于我不得不强调,别调用bsearch(),或使用其他瞒天过海的手法

4.时间自己来定:5分钟不短——只要你能保证写完写对;8小时不长——只要你愿意(而且有那么多闲工夫)。

5.可以使用编译器消除一些无意识的错误,如语法错误或变量初始化失败,但……

6.在确定程序正确之前不要测试。

7.最后,也是最重要的:如果决定参与这次测验,就必须报告。成功也好,失败也罢,甚至半途而废也要给我个话儿。否则,就无法保证测验结果的准确性了。[/quote]

实话实说。。。我第一次的代码:
    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%。。。。杯具啊!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值