您的位置:

java查找算法,java查找算法之折半查找

本文目录一览:

Java用查找算法的一段代码如下: 其中boolean A=false; if(name.equals(arr[i])) 麻烦解释一下 尽量直白

数组从第一个开始比较,完全相同(当前数组值和输入值一模一样)A就赋值为true;不一样A的值不变

java二分搜索算法怎样实现?

应该要用递归方法吧? binarySearch()方法应该要带四个参数(数组,要查找的数值,查找范围的最左边下标,查找范围的最右边下标)。然后就利用递归方法在 if (x a[middle]) 和 else 后面通过修改查找范围自调用binarySearch()方法;

java关键字查询算法

import java.io.FileReader;

import java.io.BufferedReader;

import java.io.File;

public class search

{

//查找方法,参数,文件绝对路径,查找关键字

public static boolean search(String filepath,String key)

{

try

{

File f = new File(filepath);

FileReader fr = new FileReader(f);

BufferedReader br = new BufferedReader(fr);

String s = "";

//int i = 1;

while((s = br.readLine()) != null)

{

if(s.indexOf(key) != -1)

{

return true;

}

}

return false;

}

catch(Exception e)

{

e.printStackTrace();

return false;

}

}

public static void main(String args[])

{

System.out.println(search.search("d://t.txt","l2"));

}

}

修改了下,加两个变量,可以指出查找的位置。

import java.io.FileReader;

import java.io.BufferedReader;

import java.io.File;

public class search

{

//查找方法,参数,文件绝对路径,查找关键字

public static String search(String filepath,String key)

{

try

{

File f = new File(filepath);

FileReader fr = new FileReader(f);

BufferedReader br = new BufferedReader(fr);

String s = "";

int i = 1;

int m = 0;

while((s = br.readLine()) != null)

{

if((m = s.indexOf(key)) != -1)

{

return "第"+i+"段,第"+m+"处";

}

i++;

}

return null;

}

catch(Exception e)

{

e.printStackTrace();

return null;

}

}

public static void main(String args[])

{

System.out.println(search.search("d://t.txt","asd"));

}

}

这个,查汉字是没有问题的。

另外,你要全文检索的话,indexOf()还有个方法,indexOf(int start,String key),指定开始查找的位置跟关键字,你查到一处后,将这个数值加1,做为继续查找的开始位置就可以了。