数据结构开篇:逻辑结构和物理结构、算法复杂度

简介: 数据结构开篇:逻辑结构和物理结构、算法复杂度

逻辑结构:

1.集合结构:数据元素只是同属于一个集合

2.线性结构:一对一关系

3.树形结构:一对多的关系

4.图形结构:数据元素是多对多的关系

物理结构:

又叫存储结构,是指数据的逻辑结构在计算机中的存储形式

顺序存储结构:数组结构,连续的存储单元,数据的逻辑关系和物理关系一致

链式存储结构:任意的存储单元,数据的逻辑关系和物理关系不一致。

1.算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

2.算法有5个特性:

(1)输入:算法有零个或多个输入

(2)输出:算法至少有一个输出

(3)有穷性

(4)确定性:

(6)可行性

3.算法设计的要求:

正确性:错误说明,没有语法错误,合法输入有合法输出

可读性:便于阅读、理解和交流

健壮性:不容易崩溃

时间效率高和存储量低

算法效率的度量方法:

效率高即是算法的执行时间短

事后统计方法:用计时器对每个算法计时

事前分析估计方法:编写算法前用数学统计方法估计效率

因素:1.算法策略,方案

2.编译产生的代码质量

3.问题的输入规模

4.机器执行指令的速度

算法的复杂度:侧重研究算法随着输入规模扩大增长量的一个抽象

函数的渐进增长:忽略所加常数,最高次项的系数可视为1,应该关注的主项的阶数

算法的时间复杂度:执行次数T(n)随规模n的变化情况,确定T(n)的数量及

T(n) = O(f(n)),执行次数和执行时间成正比

大O记法:T(n)增长最慢的是最优算法

对到方法:抛弃一些常数系数,抛弃低阶项


例如:常数阶O(1);

线性阶:直线增长O(n)

平方阶:O(n^2)嵌套(n*(n+1)/2

对数阶:2^x = n,得到x = log(2)n;所以是O(logn)

立方阶

指数阶

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) << O(n!) < O(n^n)

最坏情况与平均情况

我们所提的执行时间是最坏运行时间

算法的空间复杂度:内存存储大小

可以用空间换取时间

相关文章
|
5天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之插入排序
Java数据结构与算法:排序算法之插入排序
|
5天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之冒泡排序
Java数据结构与算法:排序算法之冒泡排序
|
5天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之归并排序
Java数据结构与算法:排序算法之归并排序
|
5天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之快速排序
Java数据结构与算法:排序算法之快速排序
|
5天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之选择排序
Java数据结构与算法:排序算法之选择排序
|
5天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之线性查找
Java数据结构与算法:查找算法之线性查找
|
5天前
|
算法 搜索推荐 Java
Java数据结构与算法:排序算法之堆排序
Java数据结构与算法:排序算法之堆排序
|
7天前
|
存储 算法
【数据结构和算法】--- 二叉树(4)--二叉树链式结构的实现(2)
【数据结构和算法】--- 二叉树(4)--二叉树链式结构的实现(2)
11 0
|
4天前
|
存储 设计模式 算法
数据结构,算法宏观印象构建
数据结构,算法宏观印象构建
|
5天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之二分查找
Java数据结构与算法:查找算法之二分查找