算法
文章平均质量分 63
orange_wolf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何排序10亿个数--外排小试
0.思路10亿个32位整数需要4G左右的内存,一次性载入内存是不现实的,必须要采用外排。第一次接触,当然是从最简单的办法入手。 我们可以利用大容量的外存作为中转,将10亿个数切分成小块,每一块排序好后写入外存。 切分完成后,对这些小块进行归并排序。同时在归并排序过程中,获得最大(小)值将实时写入文件,这样就可以保证低内存占用。 注:下面的例子为升序排序1.切分10亿个数假设’billion’原创 2016-03-16 20:04:00 · 8279 阅读 · 0 评论 -
Java实现80亿长字符串子串查找
写一个8G的文件由于硬盘的速度较慢,所以一次写几个字节至文件是不太划算的,所以我们需要建立一个缓冲区,一次将缓冲区内所有的数据都写入硬盘,这样效率比较高。建立缓冲区并随机设置数据final int BUFFER_LEN = 8 * 1000 * 1000;char[] buffer = new char[BUFFER_LEN]; // 缓冲区大小为16Mfor (int i =原创 2016-11-13 17:12:39 · 2035 阅读 · 0 评论 -
Java实现80亿长字符串子串查找(多线程升级)
前言本博客文章只有代码块,一些输出和 try…catch 等内容没有写在这里。本博客文章的目的是熟悉 多线程 的操作,Java新手,如有不妥之处请指正!本文的基础是我的这篇博客,改动了最后字符串查找部分。生成字符串文件、插入子串部分的瓶颈在于IO,就没改动了。原版代码long n = 0; // n存放当前的文件的绝对位置while (true) { int len; // len存原创 2016-11-16 17:31:45 · 1070 阅读 · 0 评论 -
半秒求一亿内的素数:经典筛选法&线性筛选法的介绍、改进、实现与性能分析
文章目录经典筛选法原理介绍具体实现埃拉托斯特尼筛法,简称埃氏筛,也有人称素数筛。这是一种简单且历史悠久的筛法,用来找出一定范围内所有的素数。本文主要内容为四种筛选法的原理介绍和具体实现(C++),并对比它们之间的性能差距。这四种筛选法分别是:经典筛选法、采用了欧拉函数的线性筛选法,以及个人对这两种筛选法的改进。经典筛选法原理介绍关于经典筛选法,维基百科上的动图能很好地解释其原理。先用...原创 2018-09-20 18:40:56 · 2746 阅读 · 2 评论
分享