Java面向对象_常用类库api——二分查找算法

时间:2023-03-09 06:39:51
Java面向对象_常用类库api——二分查找算法

概念:又称为折半查找,优点是比较次数少,查找速度快,平均性能好;缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。

例:

 public class BinarySearchDemo {

     /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums={20,34,30,45,54,60};
Arrays.sort(nums);
for(int i:nums){
System.out.println(i);
}
System.out.println(binarySearch(nums,60));
}
//二分查找算法
//特点:查找速度快。要求:数列必须有序
public static int binarySearch(int[] nums,int key){
int start=0;
int end=nums.length-1;
int mid=-1;
while(start<=end){
mid=(start+end)/2;
if(nums[mid]==key){
return mid;
}else if(nums[mid]<key){
start=mid+1;
}else if(nums[mid]>key){
end=mid-1;
}
}
return -1;
} }