BinFind.java 929 B

123456789101112131415161718192021222324252627282930313233
  1. package com.sf;
  2. /**
  3. * 二分查找
  4. */
  5. public class BinFind {
  6. public static void main(String[] args) {
  7. //二分法查找:要求此数组必须是有序的。
  8. int[] arr3 = new int[]{-99,-54,-2,0,2,33,43,256,999};
  9. boolean isFlag = true;
  10. int value = 256;
  11. //int value = 25;
  12. int head = 0;//首索引位置
  13. int end = arr3.length - 1;//尾索引位置
  14. while(head <= end){
  15. int middle = (head + end) / 2;
  16. if(arr3[middle] == value){
  17. System.out.println("找到指定的元素,索引为:" + middle);
  18. isFlag = false;
  19. break;
  20. }else if(arr3[middle] > value){
  21. end = middle - 1;
  22. }else{//arr3[middle] < value
  23. head = middle + 1;
  24. }
  25. }
  26. if(isFlag){
  27. System.out.println("未找打指定的元素");
  28. }
  29. }
  30. }