一、时间复杂度 是用来估计算法运行时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢 常见的时间复杂度排序(按效率排序)o(1)<o(logn)<o(n)<o(logn)<o(n*n)... 如何一眼判断时间复杂度: a.循环减半的过程 --》 o(logn) ; b.几次循环就 ...
分类:
其他好文 时间:
2021-02-20 12:44:52
阅读次数:
0
###问题描述 在大规模数据处理中,经常会遇到的一类问题就是在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常被称为top K问题。 ###问题解答 针对top K类问题,通常比较好的方案是分治+Trie树/hash+小顶堆,即先将数据集按照hash方法分解成多 ...
分类:
其他好文 时间:
2020-07-05 21:29:51
阅读次数:
70
算法 定义 对特定问题求解方法和步骤的一种描述,它是指令的有限序列。 每个指令表示一个或多个操作。 描述 自然语言:英语、中文 流程图:传统流程图、NS流程图 伪代码:类语言:类C语言 程序代码:高级语言 算法与程序 算法是解决问题的一种方法或一个过程,考虑输入与输出,一个问题由多种算法。 程序是用 ...
分类:
编程语言 时间:
2020-06-10 17:37:41
阅读次数:
67
地址 https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: ...
分类:
其他好文 时间:
2020-05-02 00:14:23
阅读次数:
58
一.时间复杂度 1. 去掉运行时间中的所有加法常数。(例如 n2+n+1,直接变为 n2+n) 2. 只保留最高项。(n2+n 变成 n2) 3. 如果最高项存在但是系数不是1,去掉系数。(n2 系数为 1) 时间复杂度排序: O(1)常数阶 所示的结构在链表中称为节点 头指针: 一个普通的指针,它 ...
分类:
其他好文 时间:
2020-03-10 18:37:29
阅读次数:
64
算法复杂度 时间复杂度:用来估计算法运行时间的一个单位;O(n)、O(1) 常见于for循环, 或者log(n)—常见于while循环。循环减半时复杂度为log(n) 常见时间复杂度排序 O(1) < O(logn)< O(n) < O(n^log n) < O(n^2) < O(n^2 log n ...
分类:
编程语言 时间:
2020-02-08 17:58:15
阅读次数:
94
总结了前端面试中常见的数据结构基础知识,涉及到时间复杂度,排序算法,哈希冲突问题及解决方法,二叉树等知识点。 ...
分类:
编程语言 时间:
2019-11-21 23:18:51
阅读次数:
175
O后面的括号中有一个函数指明某个算法的耗时/耗空间与数据增长量之间的关系。其中n代表输入数据的量 O(1)-就是最低的时间复杂度 例子:哈希算法,无论数据规模多大,都可以在一次计算后找到目标(不考虑哈希冲突) O(n)-代表数据量增大n倍,耗时也增大n倍(线性) 例子:找到一个数组里最大的数,需要把 ...
分类:
其他好文 时间:
2019-11-02 20:13:18
阅读次数:
95
定义 对于有向无权无环图,进行拓扑排序 实现方式 Kahn算法 基于DFS的拓扑排序算法 Kahn算法 优化前时间复杂度O($n^{2}$) 排序的过程 1.对于DAG,先输出没有前驱的点 2.把与前驱相关的边删除 3.继续输出没有前驱的点 4.重复前者,直到DAG为空或者没有前驱 如果我们有如下的 ...
分类:
编程语言 时间:
2019-09-16 19:48:35
阅读次数:
93
例题: 往事太多,有时候忘了就忘了吧。 如果有非记不可的,就只能用点附加手段啦! 我们定义一棵往事树是一个 n 个点 n 1 条边的有向无环图,点编号为 1到 n,其中 1 号点被称为是根结点,除根结点以外, 每个点都恰有一条出边(即以其作为起点的边)。 每条边上有 1 个字符(这里我们实际上用一个 ...
分类:
编程语言 时间:
2019-08-18 11:42:31
阅读次数:
85