![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析C++描述
五山小新新
希望每天6点下班,然后逛超市,买水果,买牛奶,看美女。
展开
-
第一章 引论-C++常识
1.4 C++ 类原创 2014-08-04 09:11:43 · 596 阅读 · 0 评论 -
散列表(四):冲突处理的方法之开地址法(二次探测再散列的实现)
前面的文章分析了开地址法的其中一种:线性探测再散列,这篇文章来讲开地址法的第二种:二次探测再散列(二)、二次探测再散列为改善“堆积”问题,减少为完成搜索所需的平均探查次数,可使用二次探测法。通过某一个散列函数对表项的关键码 x 进行计算,得到桶号,它是一个非负整数。 若设表的长度为TableSize = 23,则在线性原创 2014-09-09 14:06:35 · 2665 阅读 · 0 评论 -
散列表(三):冲突处理的方法之开地址法(线性探测再散列的实现)
二、开地址法基本思想:当关键码key的哈希地址H0 = hash(key)出现冲突时,以H0为基础,产生另一个哈希地址H1 ,如果H1仍然冲突,再以H0为基础,产生另一个哈希地址H2 ,…,直到找出一个不冲突的哈希地址Hi ,将相应元素存入其中。这种方法有一个通用的再散列函数形式: 其中H0 为hash(key) ,m为表长,di称为增量序列。增量序列的原创 2014-09-09 14:03:43 · 788 阅读 · 0 评论 -
散列表(一):散列表概念、 散列函数构造方法、 常见字符串哈希函数(测试冲突)
一、散列表基本概念1、散列表(hash table) ,也叫哈希表,是根据关键码而直接进行访问的数据结构。也就是说,它通过把关键码映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2、若结构中存在关键码为x的记录,则必定在hash(x)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系h原创 2014-09-09 14:04:17 · 1214 阅读 · 0 评论 -
排序算法小结
一、冒泡排序基本思想是:两两比较相邻记录的关键字,如果反序则交换冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2) 改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = false),说明排序已经完成改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok二、直接插入排序将一个记原创 2014-09-09 14:00:37 · 610 阅读 · 0 评论 -
第四章 树(二)
在这里主要讲解标准库中的set和map的一些用法。原创 2014-08-04 20:16:12 · 515 阅读 · 0 评论 -
第四章 树(一)
在这章,我们主要学习二叉查找树这个概念。原创 2014-08-04 15:17:55 · 574 阅读 · 0 评论 -
第三章 表、栈和队列
在这一章主要学习原创 2014-08-04 10:47:08 · 596 阅读 · 0 评论 -
散列表(二):冲突处理的方法之链地址法的实现(哈希查找)
首先需要澄清的一点是,这里讲的是hash table ,即数据项所存储的表要用数组来实现。一、链地址法这种基本思想:将所有哈希地址为i 的元素构成一个称为同义词链的链表,并将链表的头指针存在哈希表的第i个单元中,因而查找、插入和删除主要在同义词链中进行。 该散列方法首先对关键码集合用某一个散列函数计算它们的存放位置。若设散列表原创 2014-09-09 14:05:07 · 1049 阅读 · 0 评论