java的数组查找算法
① 各位大神指点,看看,关于java数组查找算法问题,输入大部分都是找不到,有时说找到了,究竟哪里出错了
代码没问题,不过判断Boolean的时候写的不那么好,if判断的本来就是一个Boolean,判断的时候直接if(flag)就是了,不用写flag==true。
② java数组查找索引问题
使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
③ 求高人指导!用Java实现在一个数组中快速查找中心值数据项的算法!
很明显,这是让你用快速排序算法来做
快速排序是比冒泡排序等其它算法更高效的排序方法,你可以网络一下‘快速排序’,有详细介绍和例子,具体原理不再阐述。
④ java二分法查找的递归算法怎么实现
publicclass二分法递归查找{
publicstaticvoidmain(String[]args){
//定义数组,注意,二分查找数组必须是有序的数组!
int[]arr={1,3,5,7,9,11,13,15,17};
//接受查找后的返回值:索引值,如果没有则是-1;
//测试查找元素:9
inta=binary(arr,9,0,arr.length-1);
System.out.println("被查找数字索引位置在:"+a);
}
//参数列表依次为:被查找的数组,查找的数字,头索引,尾索引!
publicstaticintbinary(int[]arr,intkey,intstar,intend)//递归
{
//每次进来创建,中间索引值!
intmid=(star+end)/2;
//如果被查找数小于头,或者尾,或者头索引大于尾索引,则说明无该数,返回-1;
if(key<arr[star]||key>arr[end]||star>end){
return-1;
}
//如果中间值小于被查找数,则重新定义头索引移至中间+1位置,筛选掉一半数字!
if(arr[mid]<key){
//开始递归!
returnbinary(arr,key,mid+1,end);
//否则如果中间值大于被查找数,则重新尾索引移至中间-1位置,筛选掉一半数字!
}elseif(arr[mid]>key){
//开始递归!
returnbinary(arr,key,star,mid-1);
}else{
//否者就是找到了,返回该索引!
returnmid;
}
}
}
⑤ java怎么查找数组的所有方法
不知道你实际是不是指ArrayList这个类,下面打印ArrayList类的所有方法
Method[]methods=ArrayList.class.getMethods();
for(inti=0;i<methods.length;i++){
System.out.print(methods[i].getReturnType());
System.out.print("");
System.out.print(methods[i].getName());
System.out.print("(");
Class<?>[]parameterTypes=methods[i].getParameterTypes();
for(intj=0;j<parameterTypes.length;j++){
System.out.print(parameterTypes[j].getName());
if(j<parameterTypes.length-1){
System.out.print(",");
}
}
System.out.println(")");
}
[Ljava.lang.Object; [L标示数组
⑥ JAVA数组中查找算法中equals和==的问题
你这里的是字符串的操作,所以:
equals
比较的数值是否相等
==
比较的是不是同一个对象,即是不是在同一块内存
⑦ java中如何查找数组中某个元素
public static void main(String[] args) {
//定义并初始化数组
int[] arr = {22,33,44,55,66,7,2,5,24};
//定义并初始化Scanner对象,用于获取输入键盘输入的内容
Scanner scanner = new Scanner(System.in);
//输出信息
System.out.print("请输入需要查找的数字:");
//获取键盘输入要查找的数字
int target = scanner.nextInt();
//循环数组
for(int i = 0; i < arr.length; i++) {
//如果输入的数字跟当前数组的元素的值相同
if(target == arr[i]) {
//输入所在位置,从1开始
System.out.println(target + "位于数字的第" + (i + 1) + "位");
//结束
return;
}
}
//如果找不到的话就提示一下
System.out.println("数组中不存在数字:" + target);
}