二分查找算法递归实现

桃扇骨 2022-05-21 07:52 297阅读 0赞
  1. /** * Created by panjiannan on 2018/7/3. */
  2. public class BinarySearch {
  3. public static void main(String[] args) {
  4. int[] array = {
  5. 1,2,3,6,8,9};
  6. System.out.println(binarySearch(array, 8));
  7. }
  8. private static int binarySearch(int[] ary, int target) {
  9. return binarySearch(ary, 0, ary.length -1, target);
  10. }
  11. private static int binarySearch(int[] ary, int fromIndex, int toIndex, int target) {
  12. if (ary.length == 0 || fromIndex > toIndex) {
  13. return -1;
  14. }
  15. int mid = (fromIndex + toIndex) >>> 1;
  16. if (target == ary[mid]) {
  17. return mid;
  18. }
  19. if (target < ary[mid]) {
  20. return binarySearch(ary, fromIndex, mid -1, target);
  21. }
  22. if (target > ary[mid]) {
  23. return binarySearch(ary, mid + 1, toIndex, target);
  24. }
  25. return -1;
  26. }
  27. }

发表评论

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

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

相关阅读