逻辑结构:数据与数据之间的关系分类的
物理结构:计算机存储角度出发的分类
逻辑结构:之间的不同是按照数据之间不同的关系进行分类的
逻辑结构中最常用的是数组。根据索引进行查找
目录
2.3算法核心操作次数与输入规模关联(事前分析估算方法分析---函数渐近增长)5、6
本部分是算法分析的ppt学习内容
顺序结构:使用的是数组
顺序结构的弊端:数据顺序排列好后,再有其他的数据来加入,不能插入。
链式结构:解决了该弊端,采取指针解决。内存地址不是连续的
区别:
查询效率:顺序结构高
插入效率:链式结构高
算法的要求:


该方法是要求所测试的算法按照实际进行跑通。算法要是过长的话,就会浪费很长的时间。



函数渐近增长分析:
大O记法的原则:也是根据函数渐近增长分析来进行。

注:
1、函数渐近增长的分析中,常数可以被忽略。在大O记法中将所有的常数无论大小,都记为1。
2、对应函数渐近增长分析中的第三条,只保留最高次幂即保留高阶项。
3、对应函数渐近增长分析中的第二条,和最高次幂的常数因子可以被忽略。
例子看PPT。
本部分具体看本节的ppt
1、线性阶
2、平方阶
3、立方阶
4、对数阶
对数阶的时间复杂度:为什么忽略掉对数的底数?

5、常数阶
时间复杂度的总结:

时间复杂程度从低到高(效率越低):

通常如果时间复杂程度的是大于等于O(n^2)的话,这个算法是要考虑进行优化的。
每个方法的时间复杂度的相加。参考PPT中的案例三

看本部分的PPT
1、基本数据类型内存占用情况
2、计算机访问内存的方式都是每次一次一个字节

3、一个引用需要8个字节表示
一个引用:程序中的变量

4、创建对象需要的内存大小
创建对象本身16个字节(保存自身的开销)+对象内部存储的数据大小
由上面两部分组成。
5、一般内存的使用,如果不是8为字节的倍数,会自动填充为8字节
例子:

6、创建一个数组为对象的话,占用内存24个字节


详情看PPT
注:在Java开发中,一般只考虑时间复杂度即可。