BinarySearch的实现
来源:互联网 发布:遗传算法经典书籍 编辑:程序博客网 时间:2024/04/30 13:21
package search;
import java.util.*;
import java.io.*;
public class BinarySearch
{
public static int times;
/** recursion binarySearch */
public boolean recursionBinarySearch(Comparable[] data,int min,int max,Comparable target)
{
times++;
boolean found = false;
int midPoint = (min+max)/2;
if (data[midPoint].compareTo(target) ==0)
{
found = true;
}
else if (data[midPoint].compareTo(target)>0)
{
if (min<= midPoint-1)
found=binarySearch(data,min,midPoint-1,target);
}
else if (midPoint+1 <= max)
{
found = binarySearch(data,midPoint+1,max,target);
}
return found;
}
public resetTimes()
{
this.times = 0;
}
public boolean steadyBinarySearch(Comparable[] data,int min, int max,Comparable target)
{
times++;
boolean found = false;
int midPoint = (min+max)/2;
while(min<max)
{
if (data[midPoint].compareTo(target) >0)
max = midPoint;
else
low = midPoint;
}
if (data[min].compareTo(target) == 0)
found = true;
return found;
}
public static void main(String [] args) throws IOException
{
String inString ;
StringTokenizer tokenizer;
Integer [] elements;
Comparable target;
BinarySearch bs = new BinarySearch();
BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
//get size
System.out.println("Please input the size ( size>0 ): ");
inString = in.readLine();
elements = new Integer[Integer.parseInt(inString)];
//get data[]
System.out.println("Enter the numbers of elements :(gap it with Key_space or Key_tab) ");
inString = in.readLine();
tokenizer = new StringTokenizer(inString);
for (int i =0; i<elements.length && tokenizer.hasMoreTokens();i++)
{
elements[i] = Integer.parseInt(tokenizer.nextToken());
}
//get target
System.out.println("Please input target element: ");
inString = in.readLine();
target = new Integer(Integer.parseInt(inString));
long startTime = System.currentTimeMillis();
boolean found = bs.recursionBinarySearch(elements,0,elements.length-1,target);
System.out.println("the result: "+found);
System.out.println("take time = "+(System.currentTimeMillis()-startTime));
System.out.println("size : "+elements.length+" , cursory times : "+times);
}
}
- BinarySearch的实现
- BinarySearch的java语言实现
- BinarySearch - C#实现
- 二分搜索(BinarySearch)的分治思想C语言实现
- 数据结构——BinarySearch两种方法的代码实现
- Java的binarySearch
- 不断提高binarySearch的性能
- BinarySearch
- BinarySearch
- binarySearch
- BinarySearch
- BinarySearch
- BinarySearch
- BinarySearch
- Indexof与BinarySearch的比较
- 算法第四版的BinarySearch
- 定义二分法查找数组中的数,实现arrays.binarySearch()int类型的功能。
- Collection类的shuffle()、sort()、binarySearch()
- 在JSP页面中轻松实现数据饼图
- DELPHI切割文件代码
- ASP写的链表Class,不太实用,就当练习写Class了。
- JSP实现论坛树型结构的具体算法
- 乐悲篇
- BinarySearch的实现
- 在JSP中使用JavaMail
- C的一些简单习题(9)--牛顿迭代法求根
- 数据库连接字符串大全
- 这个圣诞里不应该有我的快乐
- 贴到墙上的标语或者口号...
- Taglib 原理和实现之什么是Taglib
- JSP动态输出Excel及中文乱码的解决
- WEB标准