二分查找Binary Search
来源:互联网 发布:2014年网络歌曲 编辑:程序博客网 时间:2024/04/28 23:24
在一个有序的集合中查找元素,可以使用二分查找算法,也叫二分搜索。二分查找算法先比较位于集合中间位置的元素与键的大小,有三种情况(假设集合是从小到大排列的):
1、键小于中间位置的元素,则匹配元素必在左边(如果有的话),于是对左边的区域应用二分搜索。
2、键等于中间位置的元素,所以元素找到。
3、键大于中间位置的元素,则匹配元素必在右边(如果有的话),于是对右边的区域应用二分搜索。
另外,当集合为空,则代表找不到。
非递归版:
输入:排序数组array,数组大小size,查找值key
返回:返回数组中的相应位置,否则返回-1
int binarysearch(int[] array,int size,int key){ if(array==NULL||size==0){ return -1; } int low=0, high=size-1; int mid=0; while(low<=high){ mid=(low+high)/2; if(array[mid]>key){ high=mid-1; } else if(array[mid]<key){ low=mid+1; } else return mid; } return -1;}
递归版:
int binarysearch(int* array,int key,int low,int high){ if(low>high) return -1; int mid=(low+high)/2; if(array[mid]<key) binarysearch(array,key,mid+1,high); else if(array[mid]>key) binarysearch(array,key,low,mid+1); else return mid;}
0 0
- 二分查找(Binary Search)
- binary-search( 二分查找 )
- 二分查找Binary Search
- Binary Search二分查找
- 二分查找 Binary Search
- 二分查找(Binary Search)
- 二分查找 Binary Search
- Binary Search 二分查找
- Binary Search 二分查找
- Binary Search-二分查找
- 二分查找Binary Search
- 二分查找Binary Search
- 二分查找(binary search)
- 查找:二分查找(binary search)
- Binary Search 《二分查找》 1
- Binary Search 《二分查找》 2
- Binary Search 《二分查找》 3
- 漫谈二分查找-Binary Search
- V7 控件 CardView的基本使用
- 广义线性模型
- 工业4.0将是整个中国时代性的革命
- 动态规划-0/1背包问题
- Java IO 6:字符流进阶及BufferedWriter、BufferedReader
- 二分查找Binary Search
- LeetCode解题报告 112. Path Sum [easy]
- 电子签名行业2017新风向
- QT信号槽机制介绍
- 什么是存储过程
- KEY_NOTIFY 有什么用
- 六六大顺
- zookeeper的详细介绍及使用场景
- IDEA中常用快捷键