随笔- 443  文章- 77  评论- 996  阅读- 105万 
09 2020 档案
数据结构和算法躬行记(6)——贪心算法
摘要:贪心算法(Greedy Algorithm)会在每一步选择中都采取当前状态下最好或最优(即最有利)的选择,不能回退,从而希望结果是最好或最优的算法。它是动态规划的一种特例,需要满足更多的限制条件。 贪心算法在有最优子结构的问题中尤为有效(例如求图的最小生成树、哈夫曼编码等),最优子结构是指局部最优解 阅读全文
posted @ 2020-09-29 10:13 咖啡机(K.F.J) 阅读(689) 评论(1) 推荐(0) 编辑
数据结构和算法躬行记(5)——回溯算法
摘要:回溯算法(backtracking)是一个类似枚举的搜索尝试过程,在寻找问题解的过程中,当发现不满足求解条件时,就退回一步,尝试其它路径,该算法的时间复杂度都不会低于 O(N!),复杂的例题包括正则表达式匹配、解数独等。 在《回溯算法详解》一文中提到,解决一个回溯问题,实际上就是一个决策树的遍历过程 阅读全文
posted @ 2020-09-22 08:33 咖啡机(K.F.J) 阅读(667) 评论(0) 推荐(2) 编辑
数据结构和算法躬行记(4)——二分查找
摘要:二分查找(Binary Search)是对一种针对有序数据集合的查找算法,依赖数组,适合静态数据。通过 n/2^k=1(k 是比较次数),可以求得 k=log2^n,因此时间复杂度为高效地 O(logn)。 其思路很简单,就是每次与区间的中间数据做比较,缩小查找范围,但是期间涉及到的细节很容易踩坑, 阅读全文
posted @ 2020-09-15 09:41 咖啡机(K.F.J) 阅读(424) 评论(0) 推荐(0) 编辑
数据结构和算法躬行记(3)——二叉树
摘要:树是一种非线性表数据结构,树的基本概念如下所列。 (1)结点高度:结点到叶子结点的最长路径(即边数)。例题:112. 路径总和。 (2)结点深度:根结点到这个结点所经历的边的个数。例题:104. 二叉树的最大深度。 (3)结点层数:结点深度加 1。 (4)树的高度:根结点的高度。例题:面试题 04. 阅读全文
posted @ 2020-09-07 07:05 咖啡机(K.F.J) 阅读(460) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示