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
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
package sort;
import java.util.Random;
/**
* 排序测试类
*
* 排序算法的分类如下: 1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序);
* 3.选择排序(直接选择排序、堆排序); 4.归并排序; 5.基数排序。
*
* 关于排序方法的选择 ......
Java新手留意:Java编程三十条规则
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:
ThisIsAClassName
thisIsMethodOrFieldName
若在定义中出现了常数初始化字符,则大写stati ......
今天看到一道题目,是这样的:(我在里面打印了一些语句,先注释掉了)
class Singleton {
private static Singleton obj= new Singleton();
public static int counter1;
public static int counter2 = 2;
private Singleton() {
counter1++;
counter2++;
// System.out.println("Singleton counter1:" ......
使用Java反射机制得到类的结构信息
关键字: java反射 类的结构
使用Java反射机制得到类的结构信息
代码如下:
Java代码
package com.youdao.wm;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import jav ......