算法———二叉查找算法

墨尘 106 0

数据源必须是有序数组,性能好 每次迭代查询可以查询掉一半的查询结果

缺陷:强制依赖 有序数组 性能才能不错

数组缺陷:没办法快速插入,也没有办法扩容


/**

*二分查找算法

*@paramarr有序数组

*@paramdata查找的数据

*@paramindex下标,未查找到时返回-1

*/

publicstaticintbinarySearch(int[]arr,intdata){

intlow=0;

intheight=arr.length-1;

while(low<=height){

/**

*low+(height-low)heigth-low得到一个树,这个数据的长度,

*这个长度除以2就是得到这个数据的一半,

*low加上一半,就会

*得到整个数组的中间位置

*/

intmid=low+(height-low)/2;

if(arr[mid]<data){

low=mid+1;

}elseif(arr[mid]==data){

returnmid;

}elseif(arr[mid]>data){

height=mid-1;

}

}

return-1;

}


标签: #java

  • 评论列表

留言评论