二分查找 java代码
Posted 三尺剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找 java代码相关的知识,希望对你有一定的参考价值。
二分查找的前提是:你得先排好序,但是排序问题不在讨论。
直接上代码:
import java.util.Optional; public class MyArray { public static void main(String[]args) { int[] arr = new int[]{1,2,3}; for (int i = 0; i < arr.length; i++) { System.out.println("arr[" + i + "]=" + arr[i]); } Optional<Integer> num = searchByHalf(arr, 2); if (num.isPresent()) { System.out.println(num.get()); } else { System.out.println("not find"); } } public static Optional<Integer> searchByHalf(int[] arr, int target) { int low = 1; int high = arr.length; while (low <= high) { int middle = (low+high)/2; if (arr[middle - 1] == target) { return Optional.of(middle); } else if (arr[middle - 1] < target) { low = middle+1; } else if (arr[middle - 1] > target) { high = middle-1; } } return Optional.ofNullable(null); } }
java8 出来了,有很多新的东西,optional就是其中一个,试着用一用。
以上是关于二分查找 java代码的主要内容,如果未能解决你的问题,请参考以下文章
[Algorithm]二分插值斐波那契查找算法 Java 代码实现