二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
public class Test5 {
public static void main(String arg[]){
System.out.println(isShushu(3));
System.out.println(getFoctorial(4));
int[] search=new int[]{1,4,6,7,9};
System.out.println(getIndex(search,1));
}
public static boolean isShushu(int num){
boolean flag=true;
if(num==1){
flag=true;
}else{
for(int i=2;i<Math.sqrt(num);i++){
if(num%i==0)
flag=false;
}
}
return flag;
}
/*
* 返回一个数的阶乘
* 也可以用递归
* */
public static int getFoctorial(int num){
int result=1;
for(int i=2;i<=num;i++){
result=result*i;
}
return result;
}
/*用二分查找法返回一个整数在数组中的下标
* 折半查找
* */
public static int getIndex(int[] array,int num){
int index=0;
int length=array.length;
int min=0;
int max=length-1;
while(min<=max){
int middle=(min+max)/2;
if(num==array[middle]){
return middle;
}else if(num>array[middle]){
min++;
}else{
max--;
}
}
return -1;
}
}
二分查找和素数的例子
最新推荐文章于 2022-03-02 22:34:30 发布