电商运营学习网站手机网站建设怎样

web/2025/9/26 14:03:36/文章来源:
电商运营学习网站,手机网站建设怎样,网络游戏挣钱的有哪些,泉州百度广告文章目录1.线性探测 哈希表代码2.拉链法 哈希表代码1. 散列表用的是数组支持按照下标随机访问数据的特性#xff0c;所以散列表其实就是数组的一种扩展#xff0c;由数组演化而来。可以说#xff0c;如果没有数组#xff0c;就没有散列表。 2. 散列函数#xff0c;设计的基… 文章目录1.线性探测 哈希表代码2.拉链法 哈希表代码1. 散列表用的是数组支持按照下标随机访问数据的特性所以散列表其实就是数组的一种扩展由数组演化而来。可以说如果没有数组就没有散列表。 2. 散列函数设计的基本要求 散列函数计算得到的散列值是一个非负整数 因为数组下标从0开始如果 key1 key2那 hashkey1 hashkey2如果 key1 ! key2那 hashkey1! hashkey2 第3条是很难完全满足的不满足称之散列冲突。 3. 散列冲突 解决方法 开放寻址法 a.线性探测 线性探测法当空闲位置越来越少时几乎要遍历整个散列表接近O(n)复杂度 b. 二次探测每次的步长是 1 2 4 8 16… c. 双重散列使用多个散列函数先用第一个如果位置被占再用第二个散列函数。。。直到找到空闲位置 不管哪种方法空闲位置不多了冲突概率会大大提高尽量保证有一定比例的空闲用装载因子表示因子越大空位越少冲突越多散列表性能下降链表法更常用的解决冲突的办法 4. 如何设计散列函数 a. 散列函数的设计不能太复杂。过于复杂的散列函数势必会消耗很多计算时间也就间接的影响到散列表的性能。 b. 散列函数生成的值要尽可能随机并且均匀分布这样才能避免或者最小化散列冲突即便出现冲突散列到每个槽里的数据也会比较平均不会出现某个槽内数据特别多的情况。 c. 装载因子超过阈值自动扩容避免累积到最后一次性搬移数据分批多次搬移O(1)复杂度 d. 数据量比较小装载因子小的时候适合采用开放寻址法 e. 基于链表的散列冲突处理方法比较适合存储大对象、大数据量的散列表而且比起开放寻址法它更加灵活支持更多的优化策略比如用红黑树代替链表。 1.线性探测 哈希表代码 hashtable1.h /*** description: 哈希表开放寻址--线性探测法* author: michael ming* date: 2019/5/6 10:26* modified by: */ #ifndef SEARCH_HASHTABLE1_H #define SEARCH_HASHTABLE1_H #include iostream enum KindOfItem {Empty, Active, Deleted}; template class DataType struct HashItem {DataType data;KindOfItem info;HashItemDataType(KindOfItem i Empty):info(i){}HashItemDataType(const DataType d, KindOfItem i Empty):data(d), info(i){}int operator (HashItemDataType a){return data a.data;}int operator! (HashItemDataType a){return data ! a.data;} }; template class DataType class hashtable1 { private:HashItemDataType *ht; //散列表数组int TableSize; //散列表长度int currentSize; //当前表项个数int deletedSize; //删除标记的元素个数 public:hashtable1DataType(int m){TableSize m;ht new HashItemDataType [TableSize];currentSize 0;deletedSize 0;}~hashtable1DataType(){delete [] ht;}int hash(const DataType newData) const{return newData%TableSize; //留余数法}int find(const DataType x) const;int find_de(const DataType x) const; //当有deleted标记的元素时插入函数调用此查找int insert(const DataType x);int delete_elem(const DataType x);void print() const{for(int i 0; i TableSize; i){std::cout ht[i].data ht[i].info -;}std::cout std::endl;}int isInTable(const DataType x){int i find(x);return i 0 ? i : -1;}DataType getValue(int i) const{return ht[i].data;} }; #endif //SEARCH_HASHTABLE1_Hhashtable1.cpp /*** description: 哈希表开放寻址--线性探测法* author: michael ming* date: 2019/5/6 10:26* modified by: */ #include hashtable1.h template class DataType int hashtable1DataType::find(const DataType x) const {int i hash(x);int j i;while(ht[j].info Deleted || (ht[j].info Active ht[j].data ! x)) //说明存在冲突{j (j1)%TableSize; //用解决冲突的方法继续查找(开放定址法)if(j i)return -TableSize; //遍历整个散列表未找到}if(ht[j].info Active)return j; //找到,返回正值elsereturn -j; //没找到返回负值 } template class DataType int hashtable1DataType::find_de(const DataType x) const //当有deleted标记的元素时插入函数调用此查找 {int i hash(x);int j i;while(ht[j].info Active) //说明存在冲突{j (j1)%TableSize; //用解决冲突的方法继续查找(开放定址法)if(j i)return -TableSize; //遍历整个散列表没有空位}return j; //返回标记为Empty或者Deleted的位置 } template class DataType int hashtable1DataType::insert(const DataType x) {int i find(x);if(i 0)return 0; //元素x已存在else if(i ! -TableSize !deletedSize) //元素x不存在且散列表未满(且没有deleted标记){ht[-i].data x; //元素赋值ht[-i].info Active; //占用了标记一下currentSize;return 1;}else if(i ! -TableSize deletedSize) //元素x不存在且散列表未满(且有deleted标记){int j find_de(x);if(j 0){if(ht[j].info Deleted)deletedSize--;ht[j].data x; //元素赋值ht[j].info Active; //占用了标记一下(删除标记改成占用标记 )currentSize;return 1;}elsereturn 0;}else return 0; } template class DataType int hashtable1DataType::delete_elem(const DataType x) {int i find(x);if(i 0){ht[i].info Deleted; //找到了要删除的标记删除currentSize--;deletedSize;return 1;}else return 0; }hashtable1_test.cpp 测试程序 /*** description: * author: michael ming* date: 2019/5/6 10:42* modified by: */ #include hashtable1.cpp #include iostream int main() {hashtable1int ht1(10);ht1.print();for(int i 15; i 18; i){ht1.insert(i);ht1.print();}for(int i 25; i 29; i){ht1.insert(i);ht1.print();}for(int i 27; i 29; i){ht1.delete_elem(i);ht1.print();}for(int i 100; i 103; i){ht1.insert(i);ht1.print();}for(int i 200; i 203; i){ht1.insert(i);ht1.print();}if(ht1.isInTable(109) 0)std::cout ht1.getValue(ht1.isInTable(109));return 0; }测试结果data标记位标记 empty 0active 1 deleted 2 2.拉链法 哈希表代码 linkedHash.h /*** description: 拉链法散列表* author: michael ming* date: 2019/5/6 17:56* modified by: */#ifndef SEARCH_LINKEDHASH_H #define SEARCH_LINKEDHASH_H #include iostream template class DataType struct linkedNode //链表节点 {DataType data;linkedNode *next;linkedNode():next(NULL){}linkedNode(const DataType d):next(NULL), data(d){} }; template class DataType class linkedList //链表 { public:linkedNodeDataType *head;linkedList(){head new linkedNodeDataType(); //表头哨兵}~linkedList(){delete head;} }; template class DataType class linkedHash { private:linkedListDataType *htList; //散列表链表数组int bucket; //散列表桶个数 public:linkedHashDataType(int m):bucket(m){htList new linkedListDataType [bucket] ();}~linkedHashDataType(){for(int i 0; i bucket; i){linkedNodeDataType *p htList[i].head-next, *q p;while(q ! NULL){p q;q q-next;delete p;}}delete [] htList;}int hash(const DataType newData) const{return newData%bucket; //留余数法}linkedNodeDataType* find(const DataType x) const{int i hash(x);linkedNodeDataType *p htList[i].head-next, *q htList[i].head;while(p p-data ! x){q p;p p-next;}return q; //返回找到元素的前一个节点或者没有找到,返回最后一个元素}linkedNodeDataType* insert(const DataType x){int i hash(x);linkedNodeDataType *p htList[i].head, *q p;while(q ! NULL){p q;q q-next;}p-next new linkedNodeDataType(x);return p-next;}void delete_elem(const DataType x){linkedNodeDataType *q find(x), *p;if(q-next){p q-next;q-next q-next-next;delete p;}}void print() const{for(int i 0; i bucket; i){std::cout i [ ];linkedNodeDataType *p htList[i].head-next;while(p){std::cout p-data -;p p-next;}std::cout std::endl;}std::cout ---------------------- std::endl;} }; #endif //SEARCH_LINKEDHASH_HlinkedHash_test.cpp 测试程序 /*** description: 拉链法散列表 测试* author: michael ming* date: 2019/5/6 17:57* modified by: */ #include linkedHash.h int main() {linkedHashint ht2(10);for(int i 15; i 37; i){ht2.insert(i);ht2.print();}ht2.delete_elem(15);ht2.print();ht2.delete_elem(18);ht2.print();ht2.delete_elem(28);ht2.print();ht2.insert(88);ht2.print();ht2.delete_elem(100);ht2.print();return 0; }测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海定制网站开发营销推广小兵cms个人网站模板

首先是方法的参数是父类对象,传入子类对象是否可行 然后引出Parent p new Children(); 这句代码不是很理解,google的过程中引出向上转型 要理解向上转型又引出了动态绑定 从动态绑定又引出了静态绑定 程序绑定的概念: 绑定指的是一个方法的…

商城网站前台html模板如何在百度上发广告

在现代软件开发中,Git已经成为了版本控制系统的事实标准。无论是在个人项目还是大型企业级开发中,Git都是不可或缺的工具。因此,掌握Git的基本操作和高级特性对于软件开发者来说是非常重要的。以下是根据提供的文件内容,总结出的3…

网站模板和定制logo设计图片免费 图案 简约

在简要介绍了配置元数据并涵盖了我之前的文章《 在Spring Boot中使用配置元数据Pimp您的配置》中的基础知识之后,现在该看看如何进一步执行此步骤并进一步自定义配置。 在这篇文章中,我计划提出对配置属性的弃用,并讨论各种值提供程序&#x…

有个新网站专门做外贸的叫什么做网站学不需要做后台管理系统

UG装配约束命令在如下位置 首选接触:含接触和对齐,自动判断两种类型 接触:约束对象使其曲面法向在相反方向,并共面或共线 对齐:约束对象使其曲面法向在同一方向,并共面或共线 自动判断中心/轴&#xff1…

网站盈利的10种方式我的班级网站模板

目录 前言边云协同时代背景边缘人工智能边缘挑战英特尔边云协同的创新成果最后 前言 最近观看了英特尔On技术创新大会直播,学到了挺多知识,其中对英特尔高级首席 AI 工程张宇博士讲解的边云协同加速 AI 解决方案商业化落地特别感兴趣。张宇博士讲解了英…

永年县网站一个新手怎么做电商

近日,Scroll生态项目Penpad将品牌进一步升级为Pencils Protocol,全新升级后其不仅对LaunchPad平台进行了功能上的升级,同时其也进一步引入了Staking、Vault以及Shop等玩法,这也让Pencils Protocol的叙事方向不再仅限于LaunchPad&a…

烟台快速建站公司iis5.1怎么新建网站

AIDE(Advanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文档的完整性。AIDE能够构造一个指定文档的数据库,他使用aide.conf作为其配置文档。AIDE数据库能够保存文档的各种属性,包括:权…

中英企业网站模板中国网站用Cn域名

这篇小文将使用小波多分辨分析对一个简单信号进行降噪,主要是降噪流程,为以后的小波更复杂的降噪算法打下良好的基础。降噪算法流程大致如下: (1)去趋势项(如直流电流),并将数据归一…

重庆专业做网站安徽鲲鹏建设集团有限公司网站

lucene学习教程 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 2 lucene的工作方式 lucene提供的服务实际包含两部分&#xf…

电商 wordpress主题河北网站seo策划

目录 一:绘制直线 二:绘制矩形 三:绘制圆形 四:绘制椭圆

网站空间选择公司介绍ppt制作

一、 总则 本部分规定了 IT 运维服务支撑系统的应用需求,包括 IT 运维服务模型与模式、 IT 运维服务管理体系、以及 IT 运维服务和管理能力评估与提升途径。 二、 参考标准 下列文件中的条款通过本部分的引用而成为本部分的条款。凡是注日期的引用文件&#xff0c…

中小企业网站建设开题报告网站购物车建设

笔记来源: 1.【传送门】 2.【传送门】 前沿原理介绍 Grander因果检验是一种分析时间序列数据因果关系的方法。 基本思想在于,在控制Y的滞后项 (过去值) 的情况下,如果X的滞后项仍然有助于解释Y的当期值的变动,则认为 X对 Y产生…

新增网站备案设计一个自己公司网站开发

在开发阶段,如果同时拥有多个开源代码托管平台的账户,在代码的管理上非常麻烦。那么,如果同一台机器上需要配置多个账户,怎样才能确保不冲突,不同账户独立下载独立提交呢? 我们以两个github账号进行演示 …

免费网站后台管理系统模板下载青岛网站建设信息公示

一、 1.1 QSqlRelationalTableModel继承自QSqlTableModel,并且对其进行了扩展,提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如,“studInfo”表中的departID字段对应的是“departments…

网站开发 如何定位学生免费服务器

DB-Engines 数据库流行度排行榜 10 月更新已发布,排名前二十如下:这期的数据比较有意思,到了这个月,Microsoft SQL Server 马上扭转局势,成了分数增长最多的一个,与上个月相比其增加了 9.66 分,…

公司网站建设合同需要交印花税教育机构做网站素材

首先来看看网上的一篇文章:http://it.dengchao.org/neatbeans-problem-fedora/linux/ 在Windows和Linux(Fedora/Ubuntu/RedHat)中安装了NetBeans后,会遇到菜单等显示乱码的问题。这里告诉大家如何解决中文显示乱码的问题,包括Windows、Fedor…

有引导页的网站网站移动端就是app吗

智能停车场物联网远程监控解决方案 智能停车场物联网远程监控解决方案是一种集成了现代物联网技术、大数据分析以及云计算等先进技术手段,对停车场进行全面智能化管理的综合系统。它通过实时感知、精准采集和高效传输各类停车数据,实现对停车场运营状态…

网站建设 天猫 保证金做网站需要虚拟主机还是服务器

1.数据字典(固定的数据,省市级有层级关系的) //mp表如果没有这个字段,防报错,eleUI需要这个字段TableField(exist false) //父根据id得到子数据 ,从controller开始自动生成代码-->service//hasChildren怎么判断,只需要判断children的parentid的count数量>0就可以了//优化…

凡科网站建设怎么去掉极速建站外省住房和城乡建设厅网站

阿丹: myisam存储引擎与innodb存储引擎战争,在mysql中5.5.5之前myisam还是mysql的默认存储引擎但是在5.5.5版本之后被innodb反超。 官方解释: MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改…

做淘宝这样的网站需要什么像wordpress一样的网站吗

算法马拉松24 A 小C的多边形 题意:n1个点的多边形。给外圈的边标记上1~n,里圈的边也标记上1~n,使得对于一个外圈相邻点与中间点构成的三角形的边权之和都相等。\(n \le 10^6\) 题解:显然每个三角形权值和为\(\frac{3(n1)}{2}\) 一…