数据结构-绪论
一、逻辑结构与物理结构(数据结构的两个分类)
1,逻辑结构(重点)
数据对象中数据元素之间的相互关系
2,物理结构
数据的逻辑结构在计算机中的存储结构
二、四大逻辑结构
1,集合结构:同属于一个集合
2,线性结构:线性结构中的数据对象一对一关系
3,树形结构:一对多,层次,金字塔结构
4,图型结构:多对多
三、物理结构:
1,存储器一般指内存
2,物理结构分类:
1.顺序结构:存储在地址连续的存储单元(其逻辑结构与物理结构相同)
2.链式结构:其存储结构无法反应逻辑结构
四、算法:解决问题的步骤
1,五个特征:输入、输出、有穷性、确定性、可行性
2,时间效率高
3,存储量低
五、算法效率的度量方法:时间、空间复杂度
在算法中提到要尽量提高效率大概率是指算法的执行时间(时间复杂度比空间复杂度使用更广泛)
1,时间复杂度:
1.事后统计法:
通过设计好的测试程序与数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,确定算法效率的高低。
缺点:需手动编写测试程序、不同环境对测试结果影响大
2.事前分析估算法:
在程序编写前,根据统计方法对算法进行估算。
3.影响时间复杂度的因素:
算法的策略与方案
编译产生的代码质量
问题的输入规模
计算机执行指令的速度
4,时间复杂度的计算:
(1)定义:n:问题规模
T(n):语句总的执行次数,通过分析T(n)随n的变化情况并确定T(n)的数量级
T(n)=O(f(n)):算法的时间复杂度,f(n)代表n的某个函数。(表示随着n的增大,算法执行时间的增长率和f(n)的增长率相同)
(2)用大写的O()来代表时间复杂度
(3)判断:随着问题规模n的增大,T(n)增长最慢的算法为最优算法
(4)分析算法时间复杂度的步骤
1.对于常数均用1代替
2.在修改得运行次数函数中,只保留最高阶项
3.如果最高阶项前有相乘的常数,则去除与这个项相乘的常数
(5)举例:(所费时间从上到下增加)
1.常数阶:记作O(1)
2.对数阶:O(log2n)2为底
3. 线性阶:O(n)一般为含有非嵌套循环涉及线性阶
4. nlogn阶
5.平方阶:O(n2)嵌套循环
6.指数阶
7.立方阶
5,空间复杂度
S(n)=O(f(n))