![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
奄奄不息
加油
展开
-
链表面试题
前言:在面试中,最经常被提及的就是链表,,但又因为需要对指针进行操作,凡是涉及到指针的,都需要我们具有良好的编程基础才能确保代码没有任何错误。链表是一种动态的数据结构,因为在创建链表时,我们不需要知道链表的长度,当插入一个结点时,只需要为该结点分配内存,然后调整指针的指向来确保新结点被连接到链表中。所以,它不像数组,内存是一次性分配完毕的,而是每添加一个结点分配一次内存。正是因为这点,所以...原创 2018-09-11 17:22:43 · 4313 阅读 · 2 评论 -
搜索算法之深度优先算法
概述Depth First Search------一条路走到黑栗一:扑克牌的放法 编号为1-3的三张扑克牌和编号为1-3的盒子,一个盒子放一张牌,一共有多少种放法。栗二:员工重要性给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。现在输入一个公司的所有员工信息,以及单个员...原创 2019-07-28 20:29:03 · 154 阅读 · 0 评论 -
搜索算法之回溯
回溯是一种通过穷举所有可能情况来找到所有解的算法。如果一个候选解最后被发现并不是可行解,回溯算法会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解。回溯算法一般会结合在搜索算法中。1. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“a...原创 2019-08-05 09:28:50 · 1130 阅读 · 0 评论 -
搜索算法之广度优先
/*// Employee infoclass Employee {public: // It's the unique ID of each node. // unique id of this employee int id; // the importance value of this employee int importance; ...原创 2019-08-04 11:39:22 · 128 阅读 · 0 评论 -
动态规划续集
动态规划例七 路径总数例八 路径总数之路径上有坑例九 矩阵最小路径和例十 回文串分割遇到矩阵,网络,字符串间的比较题,单序列(一维)动规解决不了的情况下,就需要考虑双序列(二维)动规。例七 路径总数机器人在(m*n)网格的左上角,可以向下,向右走,走到网格的右下角,有多少种可能的路径。状态:F(i,j):走到(i,j)时有多少种可能的路径递推:中间:F(i,j) = F(i-1,j)+F...原创 2019-07-11 18:00:02 · 109 阅读 · 0 评论 -
动态规划
动态规划动态规划的基本思想动态规划的特点动态规划的本质适用场景例一:斐波那契数列例二 变态青蛙跳台阶新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLo...原创 2019-07-11 13:53:29 · 1098 阅读 · 0 评论 -
哈希、位图、布隆过滤器、海量数据处理总结
unordered_map和unordered_set底层使用了哈希哈希概念以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。当向该结构中:插入元素:根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放;搜索元素:...原创 2019-04-21 17:53:25 · 451 阅读 · 0 评论 -
AVL数和红黑树
二叉树二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树template<class T> struct BSTNode { BSTNode(const T& data = T()...原创 2019-04-21 16:09:31 · 263 阅读 · 0 评论 -
关联式容器之map、multimap、set、multiset、unordered_map、unordered_set
树形结构的关联式容器 map,multimap,set,multiset都是树形结构,使用平衡搜索树(红黑树)作为其底层结构,容器中的元素是一个有序的序列。mapmap是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值 key和...原创 2019-04-21 13:49:02 · 314 阅读 · 0 评论 -
C语言实现各种排序算法:插入、希尔、选择、堆排、冒泡、快排、归并排序(附动图)
前言:排序是程序员在面试时经常遇到的面试题,排序方法种类繁多,常见的有插入、希尔、选择、堆排、冒泡、快排、归并排序这7种排序方式各种排序的时间复杂度:一、插入排序:插入排序是一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中。它的算法步骤可以大致归纳如下:1. 从未排好的序列中拿出首元素,并把它赋值给temp变量;2. 从排好的序列中,依次与...原创 2018-09-26 15:18:14 · 2215 阅读 · 1 评论 -
如何往Github上面传输代码
前言: 关于GitHub,相信每一个程序员都再熟悉不过了。它为开发者提供Git仓库的托管服务,是全世界最大的代码集中地,被戏称为“全球最大同性交友网站”。但是对于很大一部分程序员来说,GitHub却是一个陌生的地方。我们中有些人可能从来没有申请过一个账号,没有创建过属于自己的Repository,甚至没有真的去访问过这个网站。更不用说要在上面看看有哪些热门的开源项目,尝试着为这些项目添砖加...原创 2018-09-05 20:01:40 · 1769 阅读 · 0 评论 -
B-树和B+树
文章目录B-树概念B-树的插入简单逻辑B-树的性能分析B+树B+树的特性:B+树的分裂B*树B*树的分裂总结B-树的应用索引MyISAMInnoDBB-树概念一棵M阶的B树,是一棵平衡的M路平衡搜索树,可以是空数或者满足以下性质:根节点至少有两个孩子每个非根节点至少有M/2(上取整)个孩子,至多有M个孩子每个非根节点至少有M/2-1(上取整)个关键字,至多有M-1个关键字,并且以升序排...原创 2019-08-29 16:36:30 · 258 阅读 · 0 评论