当前位置:   article > 正文

使用二分法查找有序数组中指定的元素_二分查找有序列表指定值

二分查找有序列表指定值

使用二分法查找有序数组中指定的元素,二分法,就是折半查找,先从中间开始查询,如果中间的数小于查询的数,那么查询的区域就缩小到中间数以后的元素,如果中间数大于查询的数,那么查询的范围就缩小到下标为0到中间数,一直查询查询,直到找到要查询的数为止。对于折半查找,我这里有两种方法,代码如下:

第一种:

  1. public static int getIndex(int[] arr,int target){
  2. //第一个元素的下标值
  3. int first = 0;
  4. //第二个元素的下标值
  5. int last = arr.length-1;
  6. //查找数的下标值
  7. int index=-1;
  8. while(first<=last){
  9. //中间下标值
  10. int middle = (first+last)/2;
  11. //等于
  12. if(arr[middle]==target){
  13. index = middle;
  14. break;
  15. }else if(arr[middle]>target){
  16. last=middle;
  17. }else if(arr[middle]<target){
  18. first=middle+1;
  19. }
  20. }
  21. return index;
  22. }

这种方法是利用了while循环做的,对于简单的有序数组,它可以很快的查询出来,但是对于复杂的有序数组,查询结果就是错的,什么样的是复杂的有序数组呢?就是在一个有序数组中,有

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/977607
推荐阅读
相关标签
  

闽ICP备14008679号