递归
去的过程叫“递”,回来的过程叫“归” 写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码 编写递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,…
去的过程叫“递”,回来的过程叫“归” 写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码 编写递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,…
<https://www.jianshu.com/p/b1ab4a170c3c Understanding the Meltdown exploit 缓存文件置换机制 缓存文件置换机制 中文 146. LRU缓存机制
1. 比较类排序: 通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 2. 非比较类排序: 不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时 间下界,以线性时间运行,因此…
哈希表(hash table), 也叫散列表,是根据关键码值(key value) 而直接进行访问的数据结构 它通过贝把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。 这个映射函数叫做散列函数(hash function),存放…
栈只支持两个基本操作:入栈push()和出栈pop() 用数组实现的栈,我们叫作顺序栈,用链表实现的栈,我们叫作链式栈 不管是顺序栈还是链式栈,我们存储数据只需要一个大小为n的数组就够了。在入栈和出栈过程中,只需要一两个临时变量存储空间,所…
队列跟栈一样,也是一种操作受限的线性表数据结构 用数组实现的队列叫作 ,用链表实现的队列叫作 最基本的操作有两个:入队enqueue(),放一个数据到队列尾部;出队dequeue(),从队列头部取一个元素 高性能队列Disruptor、Li…
单链表 每个节点只包含一个指针,即后继指针 头节点指向整条链表,尾节点的后继指针指向空地址 null 插入和删除节点的时间复杂度为O(1),查找的时间复杂度为O(n) 双向链表 节点除了存储数据外,还有两个指针分别指向前一个节点地址(前驱指…
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 数组是线性表(Linear List)。顾名思义,线性表就是数据排成像一条线一样的结构。 每个线性表上的数据最多只有前和后两个方向。其实除了数组,…
复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系 和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点 复杂度量级,我们可以粗略地分为两类, 和 。其中,非多项式量级只有两个:O(2n)和O(n!)…
第 3 / 4 页 · 共 35 篇