㈠ 快速查找算法 具体文字描述 附java程序更好 拜托各位了
快速查找算法 有叫做二分发,前提是必须对有序数组中的元素进行递归查找, 首先假设目标在数组中中间位置,与中间位置比较,如大于,则重左侧开始查找,如小于,则右侧开始查找,这样每次查找都能排除当前的一半,
㈡ java中哪种查找算法最有效率
这个问题不能一概而论
如果有一种算法优于其他算法,那么其他算法就不存在了不是?
所以,要看在什么情况下,那么有这么几个方面
背景数量级和匹配数量级,就是说你要在多少数据中查找多少数据。
背景数据差异度,背景数据如果包罗万象,或者都是数字,那么选择的算法区别就大了
背景数据整理程度。很多人在选择查找算法时不考虑这个,但是这在实际应用中很有异议,比如数据都排序过和没有排序过,可想而知算法的选择有很大的不同。
匹配方式,是用“等于” 这种方式匹配,还是用like这种方式匹配,也对算法有很大影响。
㈢ JAVA中的查找算法如何实现... 高手帮帮忙
这个。。。我随便乱说几句啊,说的不对别见笑。
有一个数组 当中存有一些字符串
另外有一个字典文件 我也将它导入一个数组 有50000多个单词
然后要找出字符串中包含的单词
由你给的条件可知:
1。数组 应该是从前到后依次顺序扫描字符串。
2。50000多个单词的字典文件一定优化。具体优化要看具体内容吧。
比如你可以按单词的首字母排序,然后分组。等扫描字符串的时候可以分组比较。但这种方法应该没省多少时间。
你还可以把50000多个单词的字典文件按单词的长度进行分组。比如1个字母的分成一组,二个字母的分成一组。。。。N个字母的分成一组,这样就分成了N组。然后扫描字符串的时候你可以按后续匹配(好象叫这个算法吧,名字记不清了)算法,这样就可以省很多时间了。
你还可以这样做,因为你要查的是单词,单词一定有意义。那你可以直接把你的字符串数组先进行语法、语义分析并分割,然后再去匹配你的字典。这样应该是最快的。但这要用到自然语言处理。。。
㈣ java 线性查找算法
package abc;
import java.util.Scanner;
import java.util.Random;
public class Test1 {
public static void main(String[] args) {
Random rand = new Random();
Scanner stdIn = new Scanner(System.in);
final int n = 12; // 元素个数
int[] a = new int[n]; // 声明数组
for (int j = 0; j < n; j++)
a[j] = rand.nextInt(10);
System.out.print("数组a中全部元素的值\n{ ");
for (int j = 0; j < n; j++)
System.out.print(a[j] + " ");
System.out.println(" }");
System.out.print("要查找的数值:");
int key = stdIn.nextInt();
int i;
for (i = 0; i < n; i++)
if (a[i] == key)
break;
if (i < n) // 查找成功
System.out.println("该元素是a[" + i + "]。");
else // 查找失败
System.out.println("该元素不存在。");
}
}
望采纳!
㈤ 用Java实现搜索算法的关键技术是什么呀
java数据结构算法实现
㈥ 有道题目求答案,用java实现顺序查找算法
...说得太笼统了,是顺序查找基本是一个循环代码解决,但是你是查找什么呢?最大?最小?还是包含某种格式字符?没说清楚就没法具体给出代码。。。
㈦ 用java做简单交通查询算法
importjava.io.*;
publicclassTest
{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsIOException
{
//TODOAuto-generatedmethodstub
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Stringstr=br.readLine();
System.out.println("请输入要查询的单词");
Strings=br.readLine();
intcount=0;
intm=0;
intbegin=-1;
intend=-1;
while(true)
{
if(s.length()==1)
{
begin=str.indexOf(s);
if(m==0)
{
System.out.println("第一次出现在"+begin+"字节处");
}
m++;
end=begin;
}
else
{
begin=str.indexOf(s.substring(0,1));
if(m==0)
{
System.out.println("第一次出现在"+begin+"字节处");
}
end=str.indexOf(s.substring(s.length()-1));
}
if(begin==-1||end==-1)
{
break;
}
if(s.equals(str.subSequence(begin,end+1)))
{
count++;
str=str.substring(end+1);
}
else
{
str=str.substring(end+1);
}
}
System.out.println("单词"+s+"出现了"+count+"次");
}
}
㈧ java 多条件 查询 算法
将数据转换成16进制,可以用InteInteger.toHexString()这个方法。
将16进制转换成10进制,可以用intValue()方法。
高低位转换就不知道了哦。。。
下面是测试代码,希望能帮到你~!
public class DataTransfer {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a = -1;
System.out.println(Integer.toHexString(a));
Integer b = 0xff;
System.out.println(b.intValue());
}
}
下面这个是在网上找到的,高低位转换:
// Java读取后,顺序已经反了
int javaReadInt = ;
// 将每个字节取出来
byte byte4 = (byte) (javaReadInt & 0xff);
byte byte3 = (byte) ((javaReadInt & 0xff00) >> 8);
byte byte2 = (byte) ((javaReadInt & 0xff0000) >> 16);
byte byte1 = (byte) ((javaReadInt & 0xff000000) >> 24);
// 拼装成 正确的int
int realint = (byte1& 0xff)<<0 + (byte2& 0xff)<<8 + (byte3& 0xff)<< 16 +(byte4& 0xff)<<24 ;
㈨ JAVA数组中查找算法中equals和==的问题
你这里的是字符串的操作,所以:
equals
比较的数值是否相等
==
比较的是不是同一个对象,即是不是在同一块内存