数据结构概述(注意区分jvm堆与堆/jvm栈与栈)
1.友情链接
目录
文字版
屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。
2.数据结构的物理存储方式
- 顺序结构:和列表基本一致
- 链式结构:和链表基本一致
3.逻辑结构
- 单向链表:每个节点会存储下一个节点的地址
- 双向链表:每个节点会存储下一个节点和上一个节点的地址
- 列表结构:参考ArrayList,内存地址紧凑排列
- 串结构:参考字符串,多以列表方式实现
- 栈和队列:参考Stack和Queue,即前者先进后出,后者先进先出
- 二叉树:每个节点会以存储左右节点的方式各存储一个地址
- 堆:完全二叉树,即从上至下的每一层都不能为空,从左至右第一个为空的节点左侧均不为空,右侧均为空。依次对应成列表结构
- 搜索二叉树:也叫二叉查找树、二叉排序树。在二叉树的基础上,若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值
- 图:每个节点会存储一个或多个下一个节点的地址
- 散列表:以key/value的形式进行储存(此处暂时认为不会发生哈希碰撞)
4.算法时间复杂度定义(耗时依次增加)
常数阶O(1)->对数阶O(logn)->线性阶O(n)->nlogn阶O(nlogn)->平方阶O(n2)->立方阶O(n3)->指数阶O(2^n)->阶乘阶O(n!)?
5.算法分类
- 查找类算法:以二分查找、深度优先、广度优先为代表的算法
- 排序类算法:以分治算法的快速排序为代表的的算法
- 计算类算法:以动态规划为代表的算法
- 贪婪算法:以狄克斯特拉算法为代表的算法
- 近似算法:k值近邻算法、傅里叶算法为代表的的算法
- 压缩算法:散列算法、SHA、md5等为代表的算法
- 其他优质算法:布隆算法
数据结构概述(注意区分jvm堆与堆/jvm栈与栈)
原文:https://www.cnblogs.com/sealLee/p/14100545.html