Java搜索算法测试
任何项目开发中,在一个集合或数组中循环查找,搜索目标数据,是经常用到的。如果搜索的数据范围比较小,那么不管什么算法,对于今天的计算机来说,性能上基本差别不大,但是如果数据量达到几百万,甚至更大,那么算法的选择和优化就显得比较重要。有空之余测试了下顺序搜索和二分搜索的性能,竟然发现效率差异在1500倍左右。当然,这2种比较的前提是,集合中的数据已经进行了排序处理。
下边是测试代码:
/**
* 搜索算法测试,主要是比较二分搜索和顺序搜索的效率
* @author 百里乐
*/
public class SearchTest
{
/** 被搜索数据的大小*/
private static final int size = 5000000;
/**
* 启动方法
* @param args
*/
public static void main(String[] args)
{
long[] data = new long[size];
//添加测试数据
for(int k =0 ;k<data.length;k++)
{
data[k] = k;
}
// 要查找的数据
long target = 4980002;
binaryFindTest(data,target);
orderFindTest(data,target);
}
/**
* 二分搜索测试
* @param data 数据集合
* @param target 搜索的数据
*/
public static void binaryFindTest(long[] data, long target)
{
long start = System.nanoTime();
int result = binaryFind(data,target);
long end = System.nanoTime();
System.out.println("binary search position:" + result);
System.out.println("binary search time:" + (end-start));
}
/**
* 顺序搜索测试
* @param data 数据集合
* @param target 搜索的数据
*/
public static void orderFindTest(long[] data, long target)
{
long start = System.nanoTime();
int result = orderFind(data,target);
long end = System.nanoTime();
System.out.println("order search position:" + result);
System.out.println("order search time:" + (e
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
JAVA定时器(java.util.Timer)
2009年07月30日 星期四 下午 02:17
【1】Java 定时器(java.util.Timer)有定时触发计划任务的功能,通过配置定时器的间隔时间,在某一间隔时间段之后会自动有规律的调用预先所安排的计划任务(java.util.TimerTask)。与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器 ......
在csdn上看到这样一个题目:
public class Test
{
public static void main(String[] args)
{
int a = 5;
System.out.println("ddsadasa" + (a > 5 ? 9.0 : 9));
}
}
运行结果是( )
A ddsadasa9 B ddsadasa9.0 C 编译出错 & ......
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:
public class InitialOrderTest {
//静态变量
&nbs ......
package io;
import java.io.*;
/**
* @author 高枕吴忧
* 利用缓冲区原理,BufferedInputStream,
* 实现的文件字节流读取功能示范
*
*/
public class BufferedInOutputStream {
public BufferedInOutputStream() {
ioTest2();
}
public void ioTest2() {
FileInputStream in = null ;
Buffered ......