数据结构与算法(一):简介
数据结构是一种存储和组织数据的方式,我们可以用特定的方法操作这些数据,数据结构反应的是数据元素已经他们之间的特定关系,例如,我们有一些玩家数据,其中某一个玩家name(姓名)为 ‘张三’,age(年龄)为26,在这里,‘张三’是一种string类型数据,26是一种Integer类型数据。
我们可以将这些玩家数据统一组织成玩家信息,其中包括玩家名字和年龄,现在我们可以在文件或者数据库中组织成这样的结构,例如:“张三” 30,“李四” 32 “王二” 33
如果你了解面向对象的编程思想, 它的实体类做的也是同样的事情,它会在一个实体类下收集不同类型的数据唯一的区别是,数据结构提供了有效访问和操作数据的技术。
在低级语言中,数据结构是存储有序数据的结构,因此可以轻松的对其进行各种操作,它表示要在内存中存储数据,合理的数据结构的设计和实施应该能够降低复杂度并提高效率。
数据结构的基本类型
如上所述,任何可以存储数据的东西都可以称之为数据结构,因为整型,浮点型,布尔类型和字符串等都是数据结构,这些类型被称之为原始数据结构。
然后我们还有一些复杂的数据结构,用于存储大型的连续的数据,我们称之为抽象数据结构,其中一些案例是,链表,树,图,堆栈,队列等。
所有这些数据结构允许我们对数据执行不同的操作,我们根据所需的操作类型选择这些数据结构。后续课程我们将更加详细的介绍研究这些数据结构。
什么是算法
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法不是完整的代码或程序,它只是问题的核心逻辑(解决方案),可以表示为伪代码或者流程图
每个算法都必须满足以下属性:
输入 – 算法外部应提供0个或更多输入。
输出 – 应该至少获得1个输出。
确定性 – 算法的每一步都应该清晰明确。
有限性 – 算法应该具有有限数量的步骤。
正确性 – 算法的每一步都必须生成正确的输出。
如果算法执行时间较短并且占用较少的内存空间,则称该算法是高效且快速的。算法的性能基于以下属性来度量:
时间复杂性
空间复杂性
空间复杂性
它在执行过程中所需的内存空间量。对于多用户系统以及可用内存有限的情况,必须认真考虑空间复杂性。
算法通常需要以下组件的空间:
指令空间:存储程序可执行版本所需的空间。此空间是固定的,但取决于程序中的代码行数。
数据空间:它是存储所有常量和变量(包括临时变量)值所需的空间。
环境空间:它是存储恢复暂停功能所需的环境信息所需的空间。
时间复杂性
时间复杂度是一种表示程序运行直到完成所需时间的方式。尝试将所需时间保持在最小值通常是一种很好的做法,这样我们的算法就可以在尽可能短的时间内完成它的执行。我们将在后面的章节中详细研究[时间复杂性。
转载请注明: 第五个季节 》 数据结构与算法(一):简介