| 数据结构和算法 | 定义(---LeetCode刷题) |
|---|---|
| 1.数据项 | 一个数据元素可以由若干数据项组成 |
| 2.数据对象 | 有相同性质的数据元素的集合,是数据的子集 |
| 3.数据结构 | 是相互之前存在一种或多种特定关系的数据元素集合 |
| 关系 | 定义 |
|---|---|
| 逻辑结构 | (是指数据对象中数据元素之间的相互关系)集合结构 线性结构 树形结构 图形结构 |
| 物理结构 | (是指数据的逻辑结构在计算机中的存储结构)顺序存储结构,链表存储结构 |
知识点: 线性表 队列 堆栈 树 图论 排序查找
- [ 数据结构研究的内容]
- [1. ] | 线性表 | 定义 | | --- | --- | |顺序表 | 1.优点:存储空间连续,允许随机访问,尾插、尾删方便 2.缺点:插入效率低,删除效率低,长度固定| |单链表 | 1.优点:随意进行增删改,插入效率高,删除效率高,长度可以随意修改 2.缺点:内存不连续,不能随机查找 | |双链表 | 1.优点:随意进行增删改,插入效率高,删除效率高,长度可以随意修改,查找效率比单链表快一倍 2.缺点:内存不连续,不能随机查找,但是效率比单链表快一倍 |
顺序表:(ArrayList)-物理和逻辑上连续(简单、占据连续内存、空间效率低、添加删除操作麻烦) 如果1.涉及到排序不要用,2.删除和添加操作比较多时不要用可以用LinkedList,3.顺序查找的时候用
单链表:(HashMap)
(断链重新指向新的节点) 查找慢,增删快
双链表:(LinkedList)
- [2. ] 软件缓存:内存缓存,数据库缓存,网络缓存 1.内存缓存: 预先将数据写到了容器(list map set)等数据存储单元中,就是软件内存缓存 ----内存缓存淘汰机制: 1.FIFO算法 2.LFU算法 (访问率比较低的剔除掉) 3.LRU算法 (最老的剔除掉,保留最新的)
----LRU算法: 1.新数据插入到链表的头部 2.当缓存命中(即缓存数据被访问),数据要移动到表头 3.当链表满时,将链表尾部的数据丢弃