码迷,mamicode.com
首页 > 其他好文 > 详细

Bitset的应用

时间:2014-09-25 23:29:47      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:sp   r   bs   应用   如何   d   5   内存   空间   

1. 给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。

 

2 有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?
申请10w个bit的空间,每个bit代表一个数字是否出现过。开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。然后依次读入已经打乱循序的数字,并将对应的bit设为1。当处理完所有数字后,根据为0的bit得出没有出现的数字。

Bitset的应用

标签:sp   r   bs   应用   如何   d   5   内存   空间   

原文地址:http://www.cnblogs.com/hellogiser/p/bitset-applications.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!