二分查找O(logn)
2017-05-08 09:35
127 查看
//二分查找O(logn),要求arr为有序数组 public static int 二分查找(int[] arr,int target){ int start = 0; int end = arr.length-1; while(start<=end){ int mid = (start+end)/2; if(arr[mid] > target){ end = mid-1; }else if(arr[mid] < target){ start = mid+1; }else{ return mid; } } return -1; }
//递归实现
public static int 二分查找(int[] arr,int target,int start,int end){if(start <= end){int mid = (start+end)/2;if(arr[mid] > target){end = mid-1;}else if(arr[mid] < target){start = mid+1;}else{return mid;}return 二分查找(arr,target,start,end);}return -1;}
相关文章推荐
- 最长递增子序列动态规划求解和利用二分查找去优化动态规划,优化成n*logn
- 【二分查找】在一个长度未知的数组中查找一个数,返回其下标,时间复杂度O(logn)
- Python 二分查找
- STL 二分查找 upper_bound和lower_bound用法
- 化妆晚会 - UPCOJ 3613 - 二分查找
- 二分查找——算法系列
- java 自我知识总结(九) 二分查找
- 二分查找以及冒泡排序
- 查找 - 二分查找
- 二分查找
- lightoj 1150 - Ghosts! 【BFS + 二分查找 + 判二分图完美匹配】
- 漫谈二分查找
- 二分查找 java
- POJ_2112_Optimal Milking( 二分查找 + Floyd + 最大流EK )
- 查找算法的实现——二分查找
- poj 1151 Atlantis 二分查找+离散化
- 用递归方法在有序表中二分查找(折半查找)
- C 二分查找 递归与非递归
- POJ 3111(二分查找平均值)
- <LeetCode><Easy>278First Bad Version (二分查找)