当前位置: 首页 > news >正文

建网站注册沈阳餐饮网站建设

建网站注册,沈阳餐饮网站建设,南昌做网站费用,多图片ppt页面设计位图 概念 用一个bit为来标识数据在不在 功能 节省空间快速查找一个数在不在一个集合中排序 去重求两个集合的交集,并集操作系统中的磁盘标记 简单实现 1.设计思想:一个bit位标识一个数据, 使用char(8bit位)集合来模拟 2.预备工作:a.计算这个数在第几个char b.是这个ch…

位图

概念

用一个bit为来标识数据在不在

功能

  • 节省空间
  • 快速查找一个数在不在一个集合中
  • 排序 + 去重
  • 求两个集合的交集,并集
  • 操作系统中的磁盘标记

简单实现

1.设计思想:一个bit位标识一个数据, 使用char(8bit位)集合来模拟

2.预备工作:a.计算这个数在第几个char b.是这个char的第几个bit位

                第i个char: num/8   第j个bit位: num%8

3.操作:放数据, 删数据, 判断数据在不在

  • set   :将对应的bit位置为1 ~~> 标识数据存在        _bit[i]  |=    (1<<j)   
  • reset:将对应的bit位置为0 ~~>标识数据不存在     _bit[i]  &=   ~(1<<j) 
  • test  :查看该bit位是不是位1~~>查看数据在不在   _bit[i]  &=  (1<<j)

set的实现:让对应bit位置1,其它位不变. 让该位 | 上1  ,  其它位 | 上0 

rest的实现:让对应bit位置1,其它位不变. 让该位 & 上0, 其它位 & 上1 

test的实现:让对应位&上1

4.代码

namespace code
{template<size_t N>class bitset{public:bitset(){_bits.resize(N/8+1,0);}//将指定的位置为1void set(size_t x){int i = x / 8;int j = x % 8;_bits[i] |= (1 << j);}//将指定的位置为0void reset(size_t x){int i = x / 8;int j = x % 8;_bits[i] &= ~(1 << j);}//查看数字在不在bool test(size_t x){int i = x / 8;int j = x % 8;return _bits[i] & (1 << j);}private:vector<char> _bits;};
}

布隆过滤器

概念

用多个bit位标识数据在不在(可以映射非整型数据)

功能

布隆过滤器常用于缓存控制、拼写检查、恶意网址过滤等场景,能够快速且高效地过滤掉大部分不必要的元素

简单实现

1.复用位图

2.提供多个仿函数,将非整型数据转换为整型, 并映射到不同的位置

3.置为1:根据计算出的位置将其置为1  在不在:映射的多个位置都为1表示在

4.代码

	struct BKDRHash{size_t operator()(const string& s){size_t hash = 0;for (auto ch : s){hash += ch;hash *= 31;}return hash;}};struct APHash{size_t operator()(const string& s){size_t hash = 0;for (long i = 0; i < s.size(); i++){size_t ch = s[i];if ((i & 1) == 0){hash ^= ((hash << 7) ^ ch ^ (hash >> 3));}else{hash ^= (~((hash << 11) ^ ch ^ (hash >> 5)));}}return hash;}};struct DJBHash{size_t operator()(const string& s){size_t hash = 5381;for (auto ch : s){hash += (hash << 5) + ch;}return hash;}};// N最多会插入key数据的个数template<size_t N,class K = string,class Hash1 = BKDRHash,class Hash2 = APHash,class Hash3 = DJBHash>class BloomFilter{public://根据hash函数计算出的位置,将其置为1void set(const K& key){size_t len = N * _X;size_t hash1 = Hash1()(key) % len;_bs.set(hash1);size_t hash2 = Hash2()(key) % len;_bs.set(hash2);size_t hash3 = Hash3()(key) % len;_bs.set(hash3);}//所有映射的位置都为1才表示在// 在      不准确的,存在误判// 不在    准确的bool test(const K& key){size_t len = N * _X;size_t hash1 = Hash1()(key) % len;if (!_bs.test(hash1)){return false;}size_t hash2 = Hash2()(key) % len;if (!_bs.test(hash2)){return false;}size_t hash3 = Hash3()(key) % len;if (!_bs.test(hash3)){return false;}return true;}private:static const size_t _X = 6;bitset<N* _X> _bs;};

http://www.yayakq.cn/news/497775/

相关文章:

  • 普宁建设局网站最近一周国内热点新闻
  • 做推广必须知道的网站吗企业官网怎么维护
  • 网站路径改版如何做301重定向知识付费网站搭建
  • 成都眉山网站建设潍坊网站制作建设
  • 南通单位网站建设重庆建筑工程网
  • 友点企业网站管理系统 模板做网站分层技术
  • 国外刺绣图案设计网站360搜索指数
  • 网站注销备案现在做一个网站最少要多少钱
  • 湛江企业网站怎么建设如何给网站更换域名
  • 微信公众平台和微网站的区别工程建设室内涂料招投标网站
  • pc端自适应网站模板设计师工作室网站
  • 互联网网站运营推广芜湖的互联网公司
  • 大庆哈尔滨网站建设怎么做彩票平台网站吗
  • 网站建设客户怎么寻找vr成品网站源码
  • 西安网站设计方案官方黄金网站软件app大全下载
  • 做网站借用网络图片不违法吧沈阳网站制作公司思路
  • 陕西培训网站建设seo在线优化排名
  • 广州定制网页设计深圳市seo上词点击软件
  • 企业网站制作费用地方网站域名用全拼
  • dtu网站开发无锡连夜发布最新通告
  • 做平面有什么好的网站网页制作素材ps文件
  • 网站管理制度建设的情况网站建设培训需要多少钱
  • 官网网站建设平台需要网站建设的人多吗
  • 网站建设自我介绍网页设计与制作教程第四版课后答案
  • 怎么建设一个淘宝客网站江西师范大学两学一做专题网站
  • 深圳做网站优化工资多少wordpress主题超2m
  • app 网站 优势建筑新型组合塑料模板
  • 狠狠做新网站小制作小发明手工五年级
  • 制作网站的完整步骤芜湖注册公司流程和费用
  • 旅游网站开发设计报告书关键词优化意见