栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构——原理性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构——原理性

1.数据结构本质研究的是数据在内存中如何存储

2.在磁盘中存储的是不同类型的编码,以文件形式存储。在内存中存储的是二进制的文件的实际
形式,磁盘中一个磁颗粒就是1bite

3.内存中最小的存储单位是电容
电容存储形式:

4.内存中是临时存储,因为一旦断电电容中就没电了所以数据就消失了
磁盘是永久性存储,即使没电了磁性还在

5.数组特点:
①.数组中的数据是连续的
②.空间大小不能改
③.数组只能存储相同的数据类型
④.数据可以通过下标进行访问
形成原因:
①.数组是这样定义的
②.定义后再改变开销太大
③.每一个元素所占的那个地址的大小相等
④.首地址+下标数据所占空间大小(下标数据所占空间大小->向后截取数据所占空间大小)

6.数组:地址连续性存储
链表:地址不连续性存储

7.链表存储每一个节点存储数据和下一个节点的地址(数据域和地址域)

8.内存最主要的作用是给cpu提供数据,磁盘最主要的作用是数据存储
大多是时间内存和磁盘都在做数据查询

9.要求所有存在于内存中的数据必须连续存储,因为要提高内存数据查询的效率
磁盘为了适应频繁的添加和删除数据,更倾向于链式存储数据

10.磁盘本质是用来存储文件的,不可能创建数组和链表

11.算法就是解决问题的方法,在任何语言中写的方法都是算法

12.算法好坏的评价标准:时间复杂度(主要)和空间复杂度

13.算法的时间复杂度:
①.确定问题的规模n(for(int i = 0;i ②.循环减半:logn(折半查找)
③.k层n的循环:n^k(for(int i = 0;i 以上为简单情况
④.复杂情况根据算法执行情况而定

14.链表的查找时间复杂度为n
数组:

15.排序二叉树:一个节点可以分为左右两个子节点,左边节点的值一定比当前节点的值小,右
边节点的值一定比当前节点的值大


时间复杂度介于logn和n之间,不稳定

16.平衡二叉树:在排序二叉树的基础之上要求颐和节点左右两边的树的高度差不能超过1
如果超过了有RR,LL,LR,RL四中旋转方式来使他重新平衡
缺点:每次进行平衡调整都要消耗系统资源,太耗费系统资源

17.2-3-4树:B树的一种

2树:只能分出两个叉的树

3树:只能分出三个叉的树

4树:只能分出四个叉的树

特点:所有的叶子节点都有一个相同的深度

18.红黑树:

有值的都不是叶子结点,会在最后的节点在下边加上黑色的节点,值为null

特点:
①.每个节点不是红色就是黑色
②.根节点是黑色的
③.每个叶子结点都是黑色的
④.如果一个节点是红色的,那么他的子节点必须是黑色
⑤.从一个节点到该节点上的所有子孙节点的路径上都拥有相同深度的黑色节点数目

调整方式有左旋和右旋
在红黑树当中没有一条路径是比其他路径长2倍多
(内存当中最优的数据结构)
PS:408大纲22年新添红黑树

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704938.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号