首页 > 其他 > 详细

二分查找

时间:2019-04-11 20:22:56      阅读:121      评论:0      收藏:0      [点我收藏+]
class Solution { /** * 递归的二分查找 * @param nums * @param target * @param left * @param right * @return */ public int binarySearch(int[] nums, int target, int left, int right) { if(left > right) { return -1; } int midIndex = (int)(left + right) / 2 ; if(target > nums[midIndex]) { return binarySearch(nums, target, midIndex+1, right); } else if(target < nums[midIndex]) { return binarySearch(nums, target, left, midIndex-1); } else { return midIndex; } } /** * 非递归实现 * @param nums * @param target * @return */ public int binarySearchWithoutRecursion(int[] nums, int target) { int low = 0; int hight = nums.length -1; while(low <= hight) { int mid = (int) (low + hight) / 2; if(nums[mid] == target) { return mid; } else if(target < nums[mid]){ hight = mid -1; } else { low = mid + 1; } } return -1; } }

二分查找

原文:https://blog.51cto.com/janephp/2377440

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!