MOOC数据结构第一章总结

(以下均为个人观点,欢迎纠错,谢谢。)
数据结构定义:以不同的抽象形式构造出的具体的结构叫做数据结构。

1.1什么是数据结构

(1)数据结构能够决定不同问题解决的效率。
(2)当不超出空间的限制时,更好的利用空间能拥有更好的效率。
(3)巧妙地算法能大大提高程序的效率。
在学习之后老师给出的数据结构和算法的定义:
数据结构分为逻辑结构和物理存储结构。
数据对象必然是要和很多操作相关联的,而这些操作就是算法。

数据结构:
数据对象集。
数据集合的操作的集合也是数据类型。

抽象:描述数据结构的方法不是具体的实现
与存放数据的机器无关。
与数据结构的存储方式,结构无关。
与实现操作算法的编程语言无关。
只描述“是什么”而不关心“怎么做”。

1.2什么是算法

定义:
(1)有限的,一定是可以在某个时间终止的。
(2)一定有输出(输入可有可无)。
(3)每一条指令集:有明确的目标,不能有歧义。计算机处理范围内的。描述不依赖与某一种计算机编程语言,是通用的。

好的算法关注时间复杂度和空间复杂度两个方面。

1.3最大子列和问题

1.第一种实现方法就是试每一种可能。时间复杂度:N的立方
2.第二种实现方法做了一点改进,免去了不必要的循环,但是算法的思想还是试所有可能。时间复杂度:N的平方
3.第三种实现方法改变了算法思想,将尝试变成递归,每次先分成一半执行,直到最后分到只有一个元素,再从最下面的节点开始算值,比较取最大的。时间复杂度:long(N)
4.通过从头到尾取值的方式,判断每次如果和小于0就将和重置为0,这样就可以取到任意一段和的最大值。时间复杂度:N。

这几种方法分别类似于数据结构中的三维数组,二维数组,树,线性表。

猜你喜欢

转载自blog.csdn.net/Ffffatass/article/details/78023005