数据结构与算法
泰勒今天不想展开
这个作者很懒,什么都没留下…
展开
-
栈结构
栈是一种特殊表,他被设置了先进后出的规则,出入口有且只有一个,在表的末端,被称之为栈顶(top)。栈只有两种操作:入栈(push)相当于在表末尾插入一个节点、出栈(pop)相当于在表末尾删除一个节点。由于栈是表的一种特例,所以ArrayList和LinkedList都支持栈操作,而且栈操作更加合理,因为他们都是常数级时间消耗。所以栈也可以分为链表实现和数组实现。栈应用1.平衡符号...原创 2020-01-09 11:16:54 · 151 阅读 · 0 评论 -
表结构
抽象数据类型 抽象数据类型(abstract data type,ADT),表示带有一些操作的对象集合。这是一种数学抽象。对于操作的具体实现,ADT不做任何解释。比如表、集合、图都有各自的ADT,对于图ADT,可以有增加、删除、包含这样的操作,又或者有取并集,取交集,查找这样的操作,至于有哪些操作,具体如何实现则不关心。表ADT 将形如A0,A1,A2,A3,……,AN−1A_0...原创 2020-01-06 15:55:37 · 639 阅读 · 0 评论 -
算法分析数学基础
相对增长率 我们将两个函数的相对增长速度称为相对增长率,从数学角度上来说其实就是一阶导数,看谁的增长速度更快,比如f(x)=x2f(x)=x^2f(x)=x2的增长速度比g(x)=xg(x)=xg(x)=x要更快。 在算法分析中:我们将f(x)f(x)f(x)的增长率大于或等于g(x)g(x)g(x)的增长率记为g(x)=O(f(x))g(x)=O(f(x))g(x)=O(f(...原创 2020-01-05 18:05:45 · 688 阅读 · 1 评论 -
&的妙用
最近看Netty源码,看到了一段这样的代码:private static boolean isPowerOfTwo(int val) { return (val & -val) == val;}一开始无法理解是什么意思,看方法名然后搜了一下,发现是用来判断一个数字是否为2的次方的,例如1,2,4,8,……这样的数。那为什么可以用来判断一个数是否为2的次方呢(...转载 2019-12-09 10:35:40 · 135 阅读 · 0 评论