吾爱乐享
个人学习网站

java学习之二分查找法代码

java学习之二分查找法代码

  • * A:案例演示
  • * 数组高级二分查找代码
  • * B:注意事项
  • * 如果数组无序,就不能使用二分查找。
  • * 因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引
  1. package com.ifenx8.study.array;
  2.  
  3. public class Demo_Binary {
  4.  
  5. /**
  6. * A:案例演示
  7. * 数组高级二分查找代码
  8. * B:注意事项
  9. * 如果数组无序,就不能使用二分查找。
  10. * 因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引
  11. */
  12. public static void main(String[] args) {
  13. int[] arr = {11,22,33,44,55,66};
  14. System.out.println(getIndex(arr,44));
  15. System.out.println(getIndex(arr,22));
  16. System.out.println(getIndex(arr,88));
  17. }
  18. /*
  19. * 返回值类型 int
  20. * 参数列表 int[] arr, int value
  21. */
  22. public static int getIndex(int[] arr, int value){
  23. int min = 0;
  24. int max = arr.length 1;
  25. int mid = (max + min ) /2;
  26. while (arr[mid] != value) {//当中间值不等于给定的值时进行循环
  27. if (arr[mid] > value) {//如果给定的中间值大于要找的值
  28. max = mid 1; //最大值的索引改变
  29. }else if(arr[mid] < value){//当给定的中间值小于要找的值
  30. min = mid + 1;//最小值的索引改变
  31. }
  32. mid = (max + min) /2;//每次对比中间值对应的索引都会改变
  33. if (max < min) {//如果最大值比最小值还小
  34. return 1;//结果返回-1
  35. }
  36. }
  37. return mid;//如果中间值等于给定要找的值就返回中间值
  38. }
  39.  
  40. }
赞(0) 打赏
未经允许不得转载:吾爱乐享 » java学习之二分查找法代码

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏