今天继续说明了一些基本概念,讲解了时间空间复杂度。
(对于概念的掌握也很最重要)
元素之间的关系在计算机中有两种表示方法:顺序映像和非顺序映像,由此得到两种不同的
储存结构:顺序存储结构和链式存储结构。
顺序:根据元素在存储器中的相对位置表示关系
链式:借助指针表示关系
数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型:是指一个数学模型以及定义在该模型上的一组操作。(仅仅取决于逻辑特性,与其在计算机内部如何表示和实现无关)
定义抽象数据类型的一种格式:
ADT name{
数据对象:<>
数据关系:<>
基本操作:<>
}ADT name
算法:是对特定问题求解步骤的一种描述。
算法五个特性:
- 有穷性:有穷的时间内完成,或者可以说是可接受的时间完成
- 确定性:对于相同的输入只能得到相同的输出
- 可行性:描述的操作都可以执行基本操作有限次来实现
- 输入:零个或多个输入。取自于某个特定对象的集合
- 输出:一个或多个输出
设计要求:正确性、可读性、健壮性、效率与低存储量需求。
算法效率度量:时间空间复杂度
这个,暑假讲课的时候写了总结,这里就不再写了吧。
https://blog.csdn.net/hebtu666/article/details/82463970
可以了解一下P/NP/NPC:https://blog.csdn.net/hebtu666/article/details/82465495
老师上课是借冒泡排序来引入的这些知识,暑假写了排序总结,结合排序来体会复杂度:
https://blog.csdn.net/hebtu666/article/details/81434236
代码是以去年拿python写的,不对的地方请指出
理解了这节课的概念应该就能看动态规划入门了