![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
杨小小凡
Trade off
展开
-
AVL 树
AVL树(c++) 1.基于前面二叉搜索树(BST)的学习,我们大概知道了二叉搜索树的初步模型,但是但我们用一个有序的数组插入到二叉搜索树的时候,这个树会退化为单链表,他的搜索的时间复杂度会从O(log2(n)) 变为 O (n) ,这对性能影响很大,那么我们该如何阻止这种事情发生呢?,那肯定是在这种树插入删除节点的时候,让他自己平衡了。我觉得发明这个树得人太厉害了。这两位大神是G. M. Adelson-Velsky和Evgenii Landis,好的,话不多说,上代码。 2.是这样的,考虑向一个BST原创 2021-10-27 01:31:15 · 105 阅读 · 0 评论 -
# 二叉搜索树
- 1.二叉搜索树是一种非平衡但自动排序的树,它是一种比较简单的树,通过二叉搜索树的学习,我们可以继续AVL树,红黑树的学习。 - 2. 二叉搜索树的优点 : 1.二叉搜索树会对数据自动排序,前提是这个类重载了比较符号,他是不允许重复的值的,当然你也可以自己设计可重复的 2.二叉搜索树虽然会自动排序,但是他不会保证左右子树的高度差,但AVL树每次会自旋,保证左右子树的高度差 <= 1,红黑树则会保证左右子树的高度差 ...原创 2021-10-25 01:19:32 · 72 阅读 · 0 评论 -
二分查找,迭代与递归的实现
(1)关于二分查找,大家可能还不是很熟悉,二分查找就是在已经有序的顺序表中,通过缩减1/2的形式,来找到目标值 (2)其实在实际生活中,电路工程师检查电缆的链接是否正常也检查这种方式,先取一段电线的中点,和另一端链接,观察哪一段是通路,再在剩下的坏的电路中选取中点,不断重复,从而减少判断次数,最终检查出故障 (3)话不多说,上代码 int binarysearch(int* array, int arraynums, int target) { if (arraynums <= 0) { re原创 2021-05-30 14:21:41 · 247 阅读 · 0 评论 -
约瑟夫问题.链表与递归的实现
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-05-30 14:08:41 · 156 阅读 · 3 评论 -
哈希表的初步理解
关于哈希表,这里采用链表的形式来给大家初步介绍一下 #include<iostream> using namespace std; class hashnode { public: int value;//保存数组里面的值 int index;//保存数组的下标 hashnode* next;//行指针 hashnode* pear;//列指针 hashnode() { value = -1; index = -1; next = NULL; pear = NULL;原创 2021-04-22 14:43:44 · 110 阅读 · 0 评论