使用BitSet对1000万个Int整数进行排序
来源:互联网 发布:中转国际机票 知乎 编辑:程序博客网 时间:2024/06/06 23:54
//因为BitSet中可以存true/false,而且是按位存储,所以在数据量很大的时候,合理的使用BitSet可以节省很大的内存空间,//提高程序的运算效率。// 下面是我使用Bitset和Arrays工具类进行排序的测试类public class BitSetSort {public static void main(String[] args) {//String sortNums = sortNums(generateNumber(10000000));sortNums1(generateNumber(10000000));//System.out.println(sortNums);}// 初始化一千万整数private static int[] generateNumber(int size){long start = System.currentTimeMillis();System.out.println("开始生成数据");int[] nums = new int[size];for(int i=0;i<size;i++){nums[i] = RandomUtils.nextInt(0, size);}System.out.println("生成数据完成,耗时:"+(System.currentTimeMillis()-start)+"毫秒");return nums;} // 使用BitSet进行排序private static String sortNums(int[] nums){long start = System.currentTimeMillis();System.out.println("开始排序");int len = nums.length;StringBuilder sb = new StringBuilder();BitSet bitSet = new BitSet(len);bitSet.set(0, len, false);for(int i=0;i<len;i++){bitSet.set(nums[i], true);}for(int i=0;i<len;i++){if(bitSet.get(i)){sb.append(i).append(",");}}System.out.println("排序完成,耗时:"+(System.currentTimeMillis()-start)+"毫秒");return sb.toString();} // 使用Arrays工具类进行排序private static int[] sortNums1(int[] nums){long start = System.currentTimeMillis();System.out.println("开始排序");Arrays.sort(nums);System.out.println("排序完成,耗时:"+(System.currentTimeMillis()-start)+"毫秒");return nums;}}
结果:
1、使用BitSet排序
开始生成数据生成数据完成,耗时:172毫秒开始排序排序完成,耗时:429毫秒
2、使用Arrays工具类排序
开始生成数据生成数据完成,耗时:172毫秒开始排序排序完成,耗时:1078毫秒
阅读全文
0 0
- 使用BitSet对1000万个Int整数进行排序
- 对这100万个整数进行排序(每个数是1--100间)
- 堆排序示例:对n个整数进行排序.
- 给出N个整数,对着N个整数进行排序
- bitmap与桶方式对1000万数据进行排序
- 对int类型的数据进行排序
- 随机产生N个整数,并对其进行排序,查找……
- 写一函数用冒泡法对10个整数进行排序
- 3.编写一个C程序,实现对10个整数进行升序排序输出。
- java编程之对10个整数进行排序(从命令窗输入数据)
- java编程之对10个整数进行排序(从对话窗体输入数据)
- 对0到n^3-1区间内的n个整数进行排序
- 输入10个整数,用直接插入法对其进行排序;
- 用指向指针的指针的方法对n个整数进行排序。
- Lucene使用SortField对多个字段进行排序
- 通过指针变量用选择法对数组中的10个整数按从大到小进行排序
- 如何对n个整数数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- (p112)在O(n)时间内,对0到n^3-1区间内的n个整数进行排序
- CRC-16/MODBUS
- 深入學習zip() ,能使用列表,元組,但不能使用字典
- 反转链表
- JAVA知识点梳理第一部分——常规知识
- iOS开发笔记--UITableViewCell的选中时的颜色及tableViewCell的selecte与deselecte
- 使用BitSet对1000万个Int整数进行排序
- Escape
- springmvc中文乱码
- mysql数据库
- Java Web书籍推荐
- 最全Pycharm教程(16)——Pycharm编辑器功能之代码自动生成
- 51Nod
- NOIP模拟9.12
- linux重定向输入和输出