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

给人做网站赚钱吗免费的网络推广

给人做网站赚钱吗,免费的网络推广,做网站的文章,新乡市建设工程网站文章目录 前言一、哈希函数是什么#xff1f;二、哈希冲突与解决方案1. 拉链法#xff08;Separate Chaining#xff09;2. 开放地址法#xff08;Open Addressing#xff09; 三、哈希表的性能分析四、C STL 中的 unordered\_map五、词频统计总结 前言 哈希表#xff0… 文章目录 前言一、哈希函数是什么二、哈希冲突与解决方案1. 拉链法Separate Chaining2. 开放地址法Open Addressing 三、哈希表的性能分析四、C STL 中的 unordered\_map五、词频统计总结 前言 哈希表Hash Table就是一种常见的、高效的数据结构它利用哈希函数将数据映射到固定大小的空间从而实现常数级别的插入、删除和查找操作。 一、哈希函数是什么 哈希函数Hash Function是将任意长度的数据映射为固定长度的哈希值的函数。它的目标是尽量均匀地分布键值避免哈希冲突。 示例字符串转哈希 int simpleHash(string key, int tableSize) {int hashVal 0;for (char ch : key) {hashVal (hashVal * 31 ch) % tableSize;}return hashVal; }该函数将字符串转换为整数索引31 是常见的“乘法因子”用于增强哈希分布。 二、哈希冲突与解决方案 由于哈希函数不可能完全避免冲突常用的冲突解决方案有以下两种 1. 拉链法Separate Chaining 每个桶bucket保存一个链表将冲突的元素链在一起。 #include iostream #include list #include vector using namespace std;class HashTable { private:vectorlistint table;int size;int hash(int key) {return key % size;}public:HashTable(int s) : size(s) {table.resize(size);}void insert(int key) {int idx hash(key);table[idx].push_back(key);}bool search(int key) {int idx hash(key);for (int val : table[idx]) {if (val key) return true;}return false;} };2. 开放地址法Open Addressing 如果出现冲突就向后找下一个空位。常用方法有线性探测、二次探测和双重哈希。 线性探测示例 #include iostream #include vector using namespace std;class LinearProbingHash { private:vectorint table;int size;int EMPTY -1;int hash(int key) {return key % size;}public:LinearProbingHash(int s) : size(s) {table.resize(size, EMPTY);}void insert(int key) {int idx hash(key);while (table[idx] ! EMPTY) {idx (idx 1) % size;}table[idx] key;}bool search(int key) {int idx hash(key);int start idx;while (table[idx] ! EMPTY) {if (table[idx] key) return true;idx (idx 1) % size;if (idx start) break; // 表满}return false;} };三、哈希表的性能分析 操作平均时间复杂度最坏时间复杂度查找O(1)O(n)所有冲突插入O(1)O(n)所有冲突删除O(1)O(n)所有冲突 注意 哈希表性能取决于负载因子load factor负载因子高时容易冲突需要扩容重哈希。 四、C STL 中的 unordered_map 标准库中的 unordered_map 就是哈希表的封装 #include iostream #include unordered_map using namespace std;int main() {unordered_mapstring, int mp;mp[apple] 3;mp[banana] 5;if (mp.find(apple) ! mp.end()) {cout Found apple, count mp[apple] endl;} }unordered_map 使用哈希表实现插入、删除、查找操作平均为 O(1)。 五、词频统计 假设有一段文本要求统计每个单词出现的频率 #include iostream #include unordered_map #include sstream using namespace std;int main() {string text this is a test this is a test again;unordered_mapstring, int freq;stringstream ss(text);string word;while (ss word) {freq[word];}for (auto [k, v] : freq) {cout k : v endl;}return 0; }总结 本文介绍了哈希函数与哈希表的基本概念、冲突解决方案拉链法和开放地址法、性能分析以及实际应用示例。哈希表在工程中非常常用比如数据库索引、缓存系统、集合判断、唯一值统计等。
http://www.w-s-a.com/news/706315/

相关文章:

  • 沈阳网站建设联系方式尉氏县金星网架公司
  • 医院网站建设实施方案基础微网站开发信息
  • 网站建设开发服务费记账百度指数搜索
  • 网站建设备案流程windows优化大师有必要安装吗
  • 怎么网站定制自己做网站卖视频
  • 网站开发二线城市网站制作过程中碰到的问题
  • 最好网站建设公司制作平台小程序开发教程资料
  • 陕西省高速建设集团公司网站国内做会展比较好的公司
  • 建设学校网站的原因网页设计实训报告1500
  • 网站建设客户来源江门网站设计华企立方
  • 自己如何做棋牌网站宁波网络推广优化方案
  • 深圳招聘网站推荐seo网站推广方案
  • 彩票网站开发 合法学术会议网站建设
  • 商务网站建设论文答辩pptseo技术博客
  • 怎样才能有自己的网站桂林搭建公司
  • 哪个网站做视频赚钱万科
  • 莆系医疗网站建设wp如何做网站地图
  • 网站建设应急处置方案团购网站 备案问题
  • 网站建设 岗位职责浙江中天建设集团有限公司网站
  • 西海岸建设局网站用wordpress建站学什么
  • 网站静态和动态学校网站建设流程步骤
  • 做群头像的网站在线怎么做俄语网站
  • 西安网站定制开发国内cms推荐
  • windows网站建设教程视频教程wordpress默认用户头像
  • 做网站需要什么软件wordpress会员邮件通知
  • 技术支持网站合肥网站搭建
  • 无为网站设计免费制作企业网站平台
  • 社交网站第一步怎么做房屋装修效果图用什么软件
  • 企业网站 批量备案合肥 网站建设
  • 如何提高网站索引量室内设计师之路网站