什么是位图算法
英文叫做bitmap,也有叫做bitset,Java SDK的util包中就包含一个BitSet的实现。
《编程珠玑》中提到一个位图算法的例子:
输入:一个文件,里面大约有1千万行数据,每个数据是7位整数,同时每个数是唯一的,即不允许有2个数相同,这些整数不与其他任何数产生关联。
输出:将这个整数按升序排列,并生成到一文件中
限制:能够使用内存为1M,但是附存足够大,运行时间最多为几分钟,10s为最合适的时间。
用位图算法解决可以这么做:用含有1千万个位的整型数组来表示这个文件,文件中有的数据则标识为1,没有则标识为0,最后从第一位读至最后一位,即为有序的集合。
利用位图算法过滤重复ID
首先阐述一下算法思路:
使用一个足够大的位图,每一位表示一个整数的ID,有ID需要处理前,去位图里面查找对应的位是否为0,0表示未处理过,等处理过后就置成1.比如现在有个位图,二进制是00000000,来个id值是3,那么我们需要把位图置成00001000,如果重复的id值3再过来,通过判断这个位图的第三位是1就知道已经处理过了。
。。。。
详情请到我的新博客:
http://xiaofengmetis.com/?p=60
分享到:
相关推荐
前言 如果要统计一篇文章的阅读量,可以直接使用 Redis 的 incr 指令来完成。如果要求阅读量必须按用户去重,那就可以使用 set 来记录阅读...我们首先想到的就是位图,可以使用位图的一个位来表示一个用户id。如果一个
在按钮上使用位图和文字在按钮上使用位图和文字
该程序使用两种方法建立位图按钮,并手动添加消息映射宏,使按钮相应鼠标单击消息,具体见程序。使用VC6.0工程。
C++ Builder不规则图像透明贴图(位图的透明显示)三种方法及简单动画v1.3源代码 BCB 6.0项目源代码。
使用位图设计畸形界面
对位图进行字节级的深入分析,提供三种位图的创建方法。
一个使用位图自绘窗体的MFC对话框程序,可以根据对话框资源进行自我调整.
位图代表了Windows程序内储存图像信息的两种方法之一。储存图像信息的另一种形式是metafile,我将在第十八章讨论。 Metafile储存的就是对图像如何生成的描述,而不是将图像以数字化的图标代表。 以后我将更详细地...
使用位图资源的图形菜单
在NX二次开发时,为了使自己设计的界面也很漂亮,就需要用到NX自身的位图,这里有两种获取自身位图的方法。其中,位于功能界面中的位图获取,比较隐蔽。依据唐工介绍的方法,编写了这两种方法,以防自己忘记。
使用C语言读取位图,代码完美运行,自己可以看实现过程及结果
爬虫的工作原理是,通过解析已经爬取页面中的网页链接,然后再爬取这些链接对应的网页。最容易想到的方法就是,我们记录已经爬取的网页链接(也就是 URL),在爬取一个
本示例 演示绘制位图,分两种方式 1. 绘制Bitmap对象 2.使用Drawable.draw方法绘制位图 详情请参见 http://blog.csdn.net/aduovip/article/details/6722949
http://blog.csdn.net/greless/article/details/72783169
mbm并不是普通的图片格式,而是Symbian OS的位图文件格式,这是一种多位图文件。 由于一个MBM文件可能包含多个位图,所以bmconv还产生一个位图头文件MBG,这个头文件提供了一个访问位图的ID。 当从MBM文件加载...
C++ Builder不规则图像透明贴图(位图的透明显示)三种方法及简单动画CB10.2 v1.5(资源嵌入)C++ Builder 10.2项目源代码
该文件包含了如何使用OPenGL中的位图。
今天小编就为大家分享一篇关于海量数据去重排序bitmap(位图法)在java中实现的两种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
使用C# 生成单色位图,并且为图片添加信息头