博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找(BinarySearch)
阅读量:4668 次
发布时间:2019-06-09

本文共 875 字,大约阅读时间需要 2 分钟。

http://blog.csdn.net/magicharvey/article/details/10282801

简单描述

二分查找,又名折半查找,是一种在有序序列中查找特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素 过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为 空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

代码实现

代码已经在xcode中验证,可以直接使用。

 

//二分查找int BinarySearch(int a[],int length, int value){    int first = 0;    int last =length - 1;        //循环进行的条件    while(first <= last)    {        //得到数组的中间元素        int mid = (first + last)/2;        if(a[mid] == value)        {            return 1;            break;        }        //如果查找的值比中间的元素大,则查找范围缩小为a[mid+1]~a[last]        else if(a[mid] < value)        {            first = mid +1;        }        //如果查找的值比中间的元素大,则查找范围缩小为a[first]~a[mid-1]        else        {            last = mid -1;        }    }    return 0;}

 

性能分析

时间复杂度为O(logn),空间复杂度为O(1)。

 

转载于:https://www.cnblogs.com/mmix2009/p/3503515.html

你可能感兴趣的文章
网友写的验证码生成方案,可防止绝大多数机械识别。
查看>>
8 个最好的 jQuery 树形 Tree 插件
查看>>
软件质量与测试 黑盒测试
查看>>
Salesforce.com + AutoCAD WS集成研究集锦
查看>>
Office 2007在安装过程中出错
查看>>
浅析Hibernate映射(五)——集合映射
查看>>
java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl解决办法
查看>>
检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。 - CatcherX...
查看>>
Bitmap处理
查看>>
C语言记录汇总
查看>>
webservices系列(三)——调用线上webservice(天气预报和号码查询)
查看>>
callback 模式
查看>>
什么是servlet
查看>>
Something about TFS
查看>>
用haslib给字符加密
查看>>
mysql limit分页查询效率
查看>>
adb shell 命令之----pm
查看>>
Git常用命令
查看>>
c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
查看>>
SQL Server中Text和varchar(max)数据类型区别
查看>>