`
prowl
  • 浏览: 80666 次
  • 性别: Icon_minigender_1
  • 来自: 艾泽拉斯
社区版块
存档分类
最新评论

你会二分查找法么?

阅读更多
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%。。。。杯具啊!
2
3
分享到:
评论

相关推荐

    C++ 二分查找法

    ### C++ 二分查找法详解 在计算机科学领域,数据结构与算法是核心课程之一,其中二分查找法(Binary Search)是一种高效的查找技术,尤其适用于有序数组或列表的搜索场景。本文将深入探讨C++中实现二分查找法的具体...

    MATLAB 二分查找法程序实现 .rar

    在给定的MATLAB二分查找法程序实现中,你可能还需要结合实际问题进行相应的调整,比如处理数组中可能存在重复元素的情况,或者对输入数据进行错误检查等。这样的编程练习有助于深入理解二分查找法,并提升在MATLAB...

    用java实现二分查找法BianrySearch

    用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch

    二分查找法

    二分查找法 学习过程 基础查找方法 学习高级查找方法的必学基础法。

    用java二分查找法实现日期搜索

    用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索

    二分查找法.docx

    ### 二分查找法知识点详解 #### 一、二分查找法概述 二分查找法是一种在有序数组中查找特定元素的高效算法。其基本原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,从而达到快速查找的目的。由于每次比较...

    java 二分查找法的实现方法

    二分查找法,又称折半查找法,是计算机科学中一种高效的搜索算法,尤其适用于已排序的数据集合。在Java中,二分查找法通常用于数组...以上就是关于Java中实现二分查找法的详细解析,希望对你理解和应用此算法有所帮助。

    采用二分查找法和顺序查找法查找元素的下标

    本主题主要关注两种常见的查找方法:顺序查找法和二分查找法。这两种方法在不同的场景下各有优势,理解并能熟练运用它们对于优化程序性能至关重要。 首先,我们来讨论顺序查找法。这种方法是最基础的查找策略,适用...

    二分查找法-ppt

    二分查找法 课件 描述了二分查找的前提条件 和基本思想,算法过程

    C例子:二分查找法

    该程序是我写的博客“一起talk C栗子吧(第二十五回:C语言实例-二分查找)”的配套程序,共享给大家使用

    NTC测温中 经典温度查表算法--二分查找法.docx

    二分查找法是一种在有序数组中查找特定元素的搜索算法,其主要优点在于查找速度快。对于长度为1024的表,最多只需要10次比较就能找到目标元素,这在NTC温度表(长度通常在100-500之间)的场景下,可以显著提高查表...

    BinarySearch二分查找法c代码

    假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。

    二分查找法汇总1

    二分查找法是一种高效的数据搜索算法,其时间复杂度为O(log n),在处理大量有序数据时具有显著优势。在算法复杂度分析中,时间复杂度是衡量算法效率的重要指标,按照优劣排序大致为:O(1)、O(log n)、O(n)、O(n log ...

    二分查找算法流程图流程图举例

    二分查找法也称为折半查找法,它是在有序数组中进行查找的一种高效方法。这种方法利用了数组有序的特点,通过不断将查找区间对半分割来减少搜索范围,从而显著提高查找效率。二分查找的时间复杂度为O(logn),这使得...

    C++数据结构折半查找法(二分查找)

    折半查找法,也称为二分查找法,是一种高效的搜索算法,尤其适用于已排序的数组或列表。本教程将深入探讨这个主题,帮助数据结构初学者理解和掌握这种强大的查找技术。 **一、二分查找法的基本概念** 二分查找法是...

    二分查找算法

    - 在排序算法中,例如快速排序和归并排序,也会用到二分查找。 通过理解二分查找算法的工作原理,熟练掌握其C++实现,并结合实际应用场景,我们可以有效地提高程序的运行效率。对于学习计算机科学的学生和专业...

    flash as3 二分查找动画演示

    在这个"flash as3 二分查找动画演示"项目中,我们看到的是一个用Flash AS3实现的二分查找算法的可视化教程。 二分查找(Binary Search)是计算机科学中一种高效的数据检索方法,适用于已排序的数组或列表。它的基本...

    查找算法集(顺序查找、二分查找、插值查找、动态查找)

    在给定的代码中,二分查找算法函数sq_Dichotomy_Search0实现了有序数组的二分查找。它的参数包括被查找数组、数组元素个数和被查找的关键值。函数返回的值是目标元素在数组中的下标,如果没有找到则返回-1。 插值...

    二分查找最简单教程

    二分查找是一种在有序数组中查找特定元素位置的算法,它利用数组元素排序的特性,通过比较数组中间元素与目标值的大小,将查找区间缩半来加快查找速度。该算法适用于有序集合,能够将时间复杂度从线性查找的O(n)降低...

Global site tag (gtag.js) - Google Analytics