java查找算法代码 java查找元素

java二分搜索算法怎样实现?应该要用递归方法吧? binarySearch()方法应该要带四个参数(数组,要查找的数值,查找范围的最左边下标,查找范围的最右边下标) 。然后就利用递归方法在if (xa[middle])和else后面通过修改查找范围自调用binarySearch()方法;
什么叫java中的二分查找法1、算法概念 。
二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法 。请注意这种算法是建立在有序数组基础上的 。
2、算法思想 。
①搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;
②如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较 。
③如果在某一步骤数组为空,则代表找不到 。
这种搜索算法每一次比较都使搜索范围缩小一半 。
3、实现思路 。
①找出位于数组中间的值,并存放在一个变量中(为了下面的说明,变量暂时命名为temp);
②需要找到的key和temp进行比较;
③如果key值大于temp , 则把数组中间位置作为下一次计算的起点;重复① ② 。
④如果key值小于temp,则把数组中间位置作为下一次计算的终点;重复① ② ③ 。
⑤如果key值等于temp,则返回数组下标 , 完成查找 。
4、实现代码 。
/**
* description : 二分查找 。
* @param array 需要查找的有序数组
* @param from 起始下标
* @param to 终止下标
【java查找算法代码 java查找元素】* @param key 需要查找的关键字
* @return
*/
public static E extends ComparableE int binarySearch(E[] array, int from, int to, E key) throws Exception {
if (from0 || to0) {
throw new IllegalArgumentException("params fromlength must larger than 0 .");
}
if (from = to) {
int middle = (from1) + (to1); // 右移即除2
E temp = array[middle];
if (temp.compareTo(key)0) {
to = middle - 1;
} else if (temp.compareTo(key)0) {
from = middle + 1;
} else {
return middle;
}
}
return binarySearch(array, from, to, key);
}
Java用查找算法的一段代码如下: 其中boolean A=false; if(name.equals(arr[i])) 麻烦解释一下 尽量直白数组从第一个开始比较,完全相同(当前数组值和输入值一模一样)A就赋值为true;不一样A的值不变
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);

推荐阅读