C#实现二分法查找算法
来源:互联网 发布:html5shiv.min.js下载 编辑:程序博客网 时间:2024/04/28 04:16
定义
在计算机科学中,二分法查找(binary search)也叫折半查找(half-interval search),又叫对数搜索(logarithmic search)。这是一种在有序数组中查找某一特定元素的搜索算法。
原理
搜索过程从数组的中间元素开始。如果中间元素正好是要查找的元素,则搜索过程终止;如果某一特定的元素大于或者小于小于中间元素,那就在大于或者小于中间元素的那一半查找,而且跟开始一样也从中间元素开始比较。如果某一步骤数组为空,则代表找不到。
特点
这种搜索算法每依次比较都使搜索范围缩小一般
注意
这种搜索算法用于有序数组中的查找
应用
可直接用于在一个数组中进行元素的查找,也可用于插入排序
示例代码
下面是一个二分法查找:
/// <summary> /// 二分法查找 /// </summary> /// <param name="arr"></param> /// <param name="key">要查找的对象</param> public static int BinarySearch(int[] arr,int value) { int low = 0; int high = arr.Length - 1; while(low<=high) { int middle = (low + high) / 2; if (value == arr[middle]) { return middle;//如果找到了就直接返回这个元素的索引 } else if(value >arr[middle]) { low = middle + 1; } else { high = middle - 1; } } return -1;//如果找不到就返回-1; }
测试一下:
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int value = BinarySearch(arr, 4); Console.WriteLine(value);
结果:
0 0
- C#实现二分法查找算法
- 二分法查找与冒泡算法的实现
- java数组实现二分法查找算法
- 查找算法 - 二分法查找
- 查找算法:二分法查找
- Java程序实现二分法查找(折半查找)算法
- C++ 二分法查找算法
- C++二分法查找算法
- 算法:二分法查找
- 算法--二分法查找
- 【基础算法】二分法查找
- 算法-二分法查找数据
- 算法之二分法查找
- 二分法查找算法
- Java 二分法查找算法
- 算法学习--二分法查找
- 二分法查找算法
- [Algorithm]二分法查找算法
- 选择排序之Java实现
- 第十一周:[Leetcode]139. Word Break
- 文章标题
- IDEA中文显示口口口口口...解决方法
- Linux的启动和关机的流程、引导加载程序
- C#实现二分法查找算法
- Gym-100712J 桶排序思想&反向思维
- PE解析器的编写(四)——数据目录表的解析
- 关系型数据库ACID特性
- ADFS 更新证书 Office365
- Binder机制-简单用法(一)
- 利用jquery ui实现微信底部的二级下拉菜单
- CenOS7上网络组team的实现
- 系列:1到1000中包含8的个数