易截截图软件、单文件、免安装、纯绿色、仅160KB

多路归并排序【JAVA实现】

对远远大于内存的数据进行外排序,在多路比较的时候用败者树效率会更高。
package my.sort;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Random;
/**
* 基于大数据量的外排序算法,分为二路贵宾和多路归并
* @author java2king
* @link http://blog.csdn.net/Java2King
*
*/
public class ExternalSort {
public static int ITEM_COUNT = 10000000; //总数
public static int BUFFER_SIZE = 1024*4*1000;// 一次缓冲读取

public static int FILE_COUNT = 1024*1000*1*4;// 每个文件的记录数1

public static File MAIN_FILE = new File("mainset");//要排序的文件
/**
* 二路归并
* @param file
* @return
* @throws IOException
*/
public File sort(File file) throws IOException {
ArrayList<File> files = split(file);
return process(files);
}
/**
* 多路归并
* @param file
* @throws IOException
*/
public void mSort(File file) throws IOException{
ArrayList<File> files = split(file);
multipleMerge(files);

}
// recursive method to merge the lists until we are left with a
// single merged list
private File process(ArrayList<File> list) throws IOException {
if (list.size() == 1) {
return list.get(0);
}
ArrayList<File> inter = new ArrayList<File>();
for (Iterator<File> itr = list.iterator(); itr.hasNext();) {
File one = itr.next();
if (itr.hasNext()) {
File two = itr.next();
inter.add(merge(one, two)


相关文档:

[转帖]Java学习之路:不走弯路,就是捷径

[转帖]Java学习之路:不走弯路,就是捷径
2007-04-11 16:10
在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?Java该如何学习?"。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《Java学习之路》。拜读过台湾蔡学镛先 ......

关于java内存泄漏的经典文章(一)

一 问题的提出
       Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使 有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因 ......

Java如何写注释


整个类文件注释
示例如下
:
/*
 
* @(#)Object.java    
1.61 03/01/23
 
*
 
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
 
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 
*/
 
package java.lang;
& ......

java调用存储过程无法取得返回参数

环境:数据库sql server2005,jdk1.6 ,myeclipse,驱动jdts1.2.2
执行以下代码,报错:
String querySQL = "{?=call p_sys_manager_csReport(?,?,?,?,?)}";
cstmt = conn.prepareCall(querySQL);
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(2, modType);
cstmt.setInt(3, dptI ......

JAVA代码小技巧,实时更新,更新到20100107

    在CSDN中看到了个有关java技巧的帖子,觉得非常有用,可以避免开发过程中产生的一些低级的错误,帖子本身已经进行了总结,我挑出了其中一些个人觉得平时开发过程中有用的部分,再加上自己在工作中学到的技巧,整理在本文中,并随着时间实时更新
1、写好注释。输入参数、输出类型、方法功能,把这三点描 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号