算法及数据结构
全栈编程网
这个作者很懒,什么都没留下…
展开
-
时间(空间)复杂度 O(N) 的理解
目录时间复杂度常数阶线性阶对数阶对数阶乘以n平方阶空间复杂度看算法相关的书籍,发现 O(N) 这样的公式比较困惑,搜罗资料解惑,如下:描述算法复杂度时,常用o(1), o(n), o(logn), o(nlogn)表示对应算法的时间复杂度或空间复杂度,是算法的时空复杂度的表示。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的...原创 2019-07-19 20:00:58 · 10282 阅读 · 0 评论 -
数据结构:表(链表)、栈、队列
1、表形如 A0,A1,A2,...,AN 的结构就称为表。1. 表的简单形式就是数组。对应Java里的 ArrayList2. 简单(单向)链表。3. 双向链表,对应Java里的 LinkedList2、栈栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈的顶。栈是后进先出的表。栈的应用计算 a + b * c + (...原创 2019-07-31 17:30:53 · 180 阅读 · 0 评论 -
数据结构:二叉查找树、AVL、B-Tree、B+Tree
目录1、二叉查找树2、AVL树(平衡二叉查找树)3、平衡多路查找树(B-Tree)4、B+Tree1、二叉查找树二叉树是一棵树,其中每个节点都不能有多于两个的儿子。二叉查找树要求所有的项都能够排序。二叉查找树需要满足如下特点:①若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ②若它的右子树非空,则右子树上所有结点的值均大于根结点的值...原创 2019-08-01 10:54:36 · 477 阅读 · 0 评论 -
数据结构:散列表
概念散列是一种用于以常数平均时间执行插入、删除和查找的技术。理想的散列表数据结构是一个包含一些项的具有固定大小的数组。散列函数key值通过散列函数计算出位置,插入或者查询散列表。如果计算出的位置相同,那么就产生一个冲突,解决这种冲突的方法有几种,其中最简单的两种是:分离链接法和开放定位法。分离链接法其做法是将散列到同一个值的所有元素保存到一个表(双向链表)中。...原创 2019-08-02 09:53:01 · 197 阅读 · 0 评论