java实现二分查找(折半查找)

Myth丶恋晨 2022-02-25 14:10 336阅读 0赞

算法思想:要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

aHR0cHM6Ly90aW1nc2EuYmFpZHUuY29tL3RpbWc_aW1hZ2UmcXVhbGl0eT04MCZzaXplPWI5OTk5XzEwMDAwJnNlYz0xNTU0MTgxNDM3MTIwJmRpPTQ3NWY0ODU2YWJiMzBjOWMwZWExYjYzYzM2ODJkYzZjJmltZ3R5cGU9anBnJnNyYz1odHRwJTNBJTJGJTJGaW1nMC5pbWd0bi5iZGltZy5jb20lMkZpdCUyRnUlM0Q2ODQ5MzI1OTUlMkMzMDM4Mzc5ODgxJTI2Zm0lM0QyMTQlMjZncCUzRDAuanBn

代码示例:

  1. public class BinarySearch {
  2. public static int bisearch(int arr[], int target) {
  3. int min = 0;
  4. int max = arr.length - 1;
  5. int mid;
  6. while (min <= max) {
  7. mid = (min + max) / 2;
  8. if (arr[mid] == target) {
  9. return mid;
  10. } else if (arr[mid] > target) {
  11. max = mid - 1;
  12. } else {
  13. min = mid + 1;
  14. }
  15. }
  16. return -1;
  17. }
  18. public static void main(String[] args) {
  19. int arr[] = new int[] { 1, 3, 6, 7, 11, 20, 39 };
  20. System.out.println(bisearch(arr, 39));
  21. }
  22. }

发表评论

表情:
评论列表 (有 0 条评论,336人围观)

还没有评论,来说两句吧...

相关阅读

    相关 二分查找(折半查找)

    二分查找 了解B+树的时候,看到了二分查找,发现自己只知道名称的意思是折半查找,却不知道是怎么去实现的。 后来查阅网上资料,发现二分查找必须要求数据是有序的,这样就

    相关 java实现二分查找折半查找

    算法思想:要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分