算法 二分查找法
Posted 趣阅编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 二分查找法相关的知识,希望对你有一定的参考价值。
作为十分常见的一种查找算法,也被称为折半查找法。首先要实现待查找数据有序,然后通过每次比较中间值和待查找值的大小调整边界范围,并调整指针位置。
Java实现:
递归实现:
public static int binarySearch(int[] arr, int start, int end, int hkey){ if (start > end) return -1; int mid = start + (end - start)/2; //防止溢位 if (arr[mid] > hkey) return binarySearch(arr, start, mid - 1, hkey); if (arr[mid] < hkey) return binarySearch(arr, mid + 1, end, hkey); return mid;
}
while循环实现:
public static int binarySearch(int[] arr, int start, int end, int hkey){ int result = -1; while (start <= end){ int mid = start + (end - start)/2; //防止溢位 if (arr[mid] > hkey) end = mid - 1; else if (arr[mid] < hkey) start = mid + 1; else { result = mid ; break; } } return result;
}
以上是关于算法 二分查找法的主要内容,如果未能解决你的问题,请参考以下文章