前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java学习之二分查找法代码

java学习之二分查找法代码

作者头像
吾爱乐享
发布2018-07-13 14:46:45
5030
发布2018-07-13 14:46:45
举报
文章被收录于专栏:吾爱乐享吾爱乐享吾爱乐享

java学习之二分查找法代码

  • * A:案例演示
  • * 数组高级二分查找代码
  • * B:注意事项
  • * 如果数组无序,就不能使用二分查找。
  • * 因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引

  1. package com.ifenx8.study.array;
  2. public class Demo_Binary {
  3. /**
  4. * A:案例演示
  5. * 数组高级二分查找代码
  6. * B:注意事项
  7. * 如果数组无序,就不能使用二分查找。
  8. * 因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引
  9. */
  10. public static void main(String[] args) {
  11. int[] arr = {11,22,33,44,55,66};
  12. System.out.println(getIndex(arr,44));
  13. System.out.println(getIndex(arr,22));
  14. System.out.println(getIndex(arr,88));
  15. }
  16. /*
  17. * 返回值类型 int
  18. * 参数列表 int[] arr, int value
  19. */
  20. public static int getIndex(int[] arr, int value){
  21. int min = 0;
  22. int max = arr.length –1;
  23. int mid = (max + min ) /2;
  24. while (arr[mid] != value) {//当中间值不等于给定的值时进行循环
  25. if (arr[mid] > value) {//如果给定的中间值大于要找的值
  26. max = mid – 1; //最大值的索引改变
  27. }else if(arr[mid] < value){//当给定的中间值小于要找的值
  28. min = mid + 1;//最小值的索引改变
  29. }
  30. mid = (max + min) /2;//每次对比中间值对应的索引都会改变
  31. if (max < min) {//如果最大值比最小值还小
  32. return –1;//结果返回-1
  33. }
  34. }
  35. return mid;//如果中间值等于给定要找的值就返回中间值
  36. }
  37. }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档