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

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

二分查找:给定数组是有序的,给定一个key值。每次查找最中间的值,如果相等,就返回对应下标,如果key大于最中间的值,则在数组的右半边继续查找,如果小于,则在数组左半边查找,。最终有两种结果,一种是找到并返回下标,第二种是没找到

(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。

(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。

(3)如果某一步数组为空,则表示找不到目标元素。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

static int BinSearch(int value, int[] array)        {            int low = 0;            int high = array.Length - 1;            while (low<=high)            {                int mid = (low + high) / 2;                if (array[mid]==value)                {                    return mid;                }                else if (array[mid]>value)                {                    high = mid - 1;                }                else                {                    low = mid + 1;                }            }            return -1;        }

在这里插入图片描述

///         /// 递归查找        ///         /// 
static int BinSearchRecursion(int value, int low, int high, int[] array) { if (low>high) return -1; int mid = (low + high) / 2; if (array[mid] == value) { return mid; } else if (array[mid] > value) { return BinSearchRecursion(value, low, mid - 1, array); } else { return BinSearchRecursion(value, mid + 1, high, array); } }

转载地址:http://qdrxo.baihongyu.com/

你可能感兴趣的文章
Pandownload关了,还有更牛逼的百度网盘全速下载方法
查看>>
【转】C++文件流の添加数字到指定文件中
查看>>
在网络设备上暂挂会话
查看>>
SQL中访问远程数据库(MSSQL)
查看>>
Django学习
查看>>
python excel操作
查看>>
我的友情链接
查看>>
孙杨赢在“天才+努力+机遇”
查看>>
OC @property 指示符assign、atomic、copy、retain、strong、week、等
查看>>
apt-get常用命令
查看>>
linux下查看文件编码及修改编码
查看>>
trip数据库的建立
查看>>
2012年上半年网工考试试题分析
查看>>
Eclipse中将tomcat日志输出重定向
查看>>
Ubuntu 14.04安装Nginx1.60
查看>>
神奇犁头草,治疗肿毒效如神
查看>>
ORA-06553: PLS-553: character set name is not recognized, while starting Content Store
查看>>
Watches OpenCart 主题模板 ABC-0088
查看>>
linux iptables 相关应用
查看>>
怎样做好DNS服务器的保护
查看>>