这个题为《编程珠玑》中提到的算法,解题思路和桶排序/基数排序一样,适用于大量没有重复的数据。

结题思路:

  1.遍历整个数据文件,每提取一个数据,在BitMap中对应的位置赋1

  2.遍历BitMap的每一位,为1的位置上输出其再BitMap中的坐标

 #include <iostream>
#include <fstream>
using namespace std;
const int maxnum=;  //设置位图大小
const int mask=0x1f;  //求余
void setbit(int *a,int tmp);
int check(int *a,int tmp);
int main()
{
int bit[maxnum/+];
for(int i=;i<maxnum/+;i++)
bit[i]=;
ifstream fin;
ofstream fout;
int tmp;
fin.open("test.txt");
fout.open("result.txt");
fin>>tmp;
while(tmp!=-)
{
setbit(bit,tmp);
fin>>tmp;
}
for(int i=;i<maxnum;i++)
{
if(check(bit,i))
{
cout<<i<<endl;
fout<<i<<endl;
}
}
fin.close();
fout.close();
cout<<"end!";
return ;
}
void setbit(int *a,int tmp)
{
a[tmp>>]|=(<<(tmp&mask));
}
int check(int *a,int tmp)
{
return a[tmp>>]&(<<(tmp&mask));
}

BitSort的更多相关文章

  1. <转载>编程珠玑-位排序(bitsort)

    转载:http://www.cnblogs.com/shuaiwhu/archive/2011/05/29/2065039.html  维护版权   在<编程珠玑>一书上,有一题是将一堆不 ...

  2. 【读书笔记】《编程珠玑》第一章之位向量&位图

    此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...

  3. 大数据下的Distinct Count(二):Bitmap篇

    在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样介绍bitmap的: B ...

  4. Bitmap

    Bitmap篇   在前一篇中介绍了使用API做Distinct Count,但是计算精确结果的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样 ...

  5. 编程珠玑第一章的算法,Java实现,通俗易懂

    该算法也就是所谓的位图算法,用一个int表示32位,也就是实际值为1~32的数. 按照书里说的, 该算法只适合内存有限,而磁盘和时间不限,且数字在1~MAX之间不重复的排序. package demo ...

随机推荐

  1. 使用Redis的Java客户端Jedis

    转载自:http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 前一篇文章<Redis命令指南>讲解了通过命令行 ...

  2. java加解密

    换工作中,把以前学的知识,整理整理.能否得到一份好的薪资且满意的工作,然后赢取白富美,走向人生的巅峰,就靠它了.哈哈. 对称加密:DES, AES DES (数据加密算法) : 明文按64位进行分组, ...

  3. Vue.js教程

    https://aotu.io/notes/2016/10/13/vue2/?o2src=juejin&o2layout=compat

  4. 循序渐进看Java web日志跟踪(3)-Log4J的使用和配置

    之前说过关于java日志跟踪的几大主要用的框架,也说到了,其实在其中,Log4J充当着一个相当重要的角色.目前,大部分框架也都是采用的是Log4J,虽然说它已经停止了更新,作者也重新起了LogBack ...

  5. <poj - 2139> Six Degrees of Cowvin Bacon 最短路径问题 the cow have been making movies

    本题链接:http://poj.org/problem?id=2139 Description:     The cows have been making movies lately, so the ...

  6. error: a label can only be part of a statement and a declaration is not a statement

    GCC: error: a label can only be part of a statement and a declaration is not a statement switch(a){ ...

  7. [Q]自定义保存位置及文件名

    以“DWG To PDF.pc3”打印为例: 说明:<DrawingDirectory> 当前图纸所在目录<DrawingFolderName> 当前图纸文件所在文件夹名称&l ...

  8. Java资源大全中文版

    awesome-java-cn 是 Java 资源大全的中文版,包括开发库.开发工具.网站.博客等,将由伯乐在线持续更新. https://github.com/jobbole/awesome-jav ...

  9. android弹出dialog后,activity得到焦点

    1.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,WindowManager.LayoutParams.FLAG ...

  10. 可用fidder测试的一些安全测试点

    以下是整理的一些常见的安全渗透测试点 1.用工具fidder抓包拦截篡改服务器端返回的代码,导致下级拥有对上级的访问操作权限 以下是公司开发写的用户角色权限页面跳转 修改普通角色跳转的页面为管理员跳转 ...