希尔排序算法实例详解 1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2)稳定性:不稳定排序2.过程介绍希尔排序,又名递减增量排序算法,是一种非稳定的更高效的插入排序,在对几乎已经排好序的数据操作时,效率极高,即可以达到线性排序的效率, 排序算法 2022年03月10日 185 点赞 0 评论 95148 浏览
DAG上的DP实例讲解 DAG是学习动态规划的基础,(DAG:有向无环图。)很多问题都可以直接转化为DAG上的最长路、最短路或路径计数问题。两个经典的DAG模型,嵌套矩形和硬币问题。一、嵌套矩形(1)第一个DAG模型:矩形嵌套问题描述:有n个矩形,每个矩形可以用a,b来描述,表示长和宽。 动态规划 2022年02月09日 193 点赞 0 评论 90595 浏览
倍增算法实例讲解 本篇将简要介绍倍增法。倍增法(英语:binarylifting),顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度。这个方法在很多算法中均有应用,其中最常用的是RMQ问题和求LCA(最近公共祖先)。一、什么是倍增?倍增,字面意思就是“成倍增长”。 算法基础 2022年03月25日 160 点赞 0 评论 89417 浏览
简述最小树形图 一、什么是最小树形图?就是指有向图上的最小生成树,英文是DirectedMinimumSpanningTree。常用的算法是朱刘算法(也称Edmonds算法),可以在O(nm)时间内解决最小树形图问题。(1)过程对于每个点,选择它入度最小的那条边如果没有环, 图论 2022年03月27日 222 点赞 0 评论 96712 浏览
字典树(trie)/前缀树(Prefix Tree)实例讲解 对于字典树/前缀树可能大部分情况很难直观或者有接触的体验,尤其是对前缀这个玩意没啥概念,可能做题遇到前缀问题也是使用暴力匹配蒙混过关,如果字符串比较少使用哈希表等结构可能也能蒙混过关,但如果字符串比较长、相同前缀较多那么使用字典树可以大大减少内存的使用和效率。 字符串相关 2022年01月16日 106 点赞 0 评论 95420 浏览
哈夫曼树编码与查找算法(C语言实现) 1.哈夫曼树的查找算法查找算法根据构建哈夫曼树算法衍生而来,我们在构建二叉树时需要查找出哪些数据最小,以符合我们哈夫曼树的最优解情况。查找权重值最小的两个结点的思想是:从待处理数据的头部位置开始,首先找到两个无父结点的结点(说明还未使用其构建成树), 树 2022年04月23日 228 点赞 0 评论 141237 浏览
什么是数学? 一、什么是数学?数学是研究数量、结构、变化以及空间模型等概念的一门科学。二、数学的特点数学区别于其他学科的明显特点有三个:1.抽象性,2.精确性,3.应用的极端广泛性。三、数学的三个传统领域:1.研究数的理论的代数学,2.研究形的理论的几何学, 数学相关 2022年01月10日 98 点赞 0 评论 88167 浏览
参考及相关链接 参考目录:《大话数据结构》程杰著《数据结构与算法》小黑书,C语言版本《算法与数据结构》小黑书,JAVA版本互联网搜索引擎如百度和谷歌CSDNStack论坛在基本完成数据结构的学习,你应该可以做到:1.完全自由的写出链表,以及基本的操作方法和进阶, 后记 2022年01月31日 57 点赞 0 评论 76638 浏览
回溯法经典例题分析 回溯法在我们解题步骤中经常被提到,这也是一种常用的方法,回溯法是一种经常被用在深度优先搜索(DFS)和广度优先搜索(BFS)的技巧。其本质是:走不通就回头。本篇将结合经典例题帮助大家对回溯法的理解。一、工作原理:(1)构造空间树;(2)进行遍历;(3)如遇到边界条件, 搜索算法 2022年01月29日 82 点赞 0 评论 113688 浏览
手指树的基本结构 一、简介手指树(FingerTree)是一种纯函数式数据结构,由RalfHinze和RossPaterson提出。二、为什么需要手指树?在函数式编程中,列表是十分常见的数据类型。对于基于序列的操作,包括在两端添加和删除元素(双端队列操作),在任意节点插入、连接、删除, 数据结构 2022年05月22日 142 点赞 0 评论 66507 浏览