/** * 对10000000万个不重复数字排序 * User: zhangyong * Date: 14-5-3 * Time: 下午6:23 * To change this template use File | Settings | File Templates. */ public class BitSortTest {
private static final int BITSPERWORD = 32; //整数位数 private static final int SHIFT = 5; private static final int MASK = 0x1F; //5位遮蔽 0B11111 private static final int N = 10000000; //用int数组来模拟位数组,总计(1 + N / BITSPERWORD)*BITSPERWORD位,足以容纳N private static int[] a = new int[(1 + N / BITSPERWORD)];
public static void bitsort(int[] array) { for (int i = 0; i < N; i++) clr(i); //位数组所有位清0 for (int i = 0; i < array.length; i++) set(array[i]); //阶段2 for (int i = 0; i < N; i++) if (test(i)) System.out.println(i); }