Java教程

二分查找非递归Algorithm(java)

本文主要是介绍二分查找非递归Algorithm(java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二分查找的适用条件

二分查找只适用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找
二分查找的运行时间为对数时间O(LONG2 N)

二分查找非递归的实现

/**
* @param arr 待查找的数据 升序排列
* @param target 需要查找的数
* @return 返回对应下标,-1表示没有找到
*/
public static int binarySearch(int[] arr ,int target)
  int left = 0;
  int right = arr.length-1;
  while(left<=right)
  {
   int mid = (left+right)/2;
    if(arr[mid] == target){
     return mid;
     }else if(arr[mid]>target){
      right =mid-1 ;//需要向左查找
    }else{
   left = mid+1;//需要右边查找
  }
 return -1;
  }


这篇关于二分查找非递归Algorithm(java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!