- 1.为什么要学习数据结构与算法?
数据结构与算法是一门内功,就像去少林寺学习功夫一样,刚开始从挑水、种菜为主,经过一段时间之后,才会学到真正的功夫(有了几年的基础),学习算法也是这样,学习算法是很枯燥无味的,学会了,你就是大佬了。
- 2.什么是算法?
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。(百度百科)
例如:比如下五子棋,这里面的规则和策略可以看成是算法,
- 3.数据是什么?
数据是计算机执行的基础,计算机没有数据也难以完成一些事情,就犹如古言:巧妇难为无米之炊!数据就如米粒,从中可以发现数据的重要性了吧!
- 4.数据结构
数据之间存在的一种或多种特定元素的集合。描述的是一种关系,比如你跟隔壁老王,隔壁老王与隔壁老李,比如你两人都认识,数据结构就像这里面的关系,一对一、一对多的关系,他们之间到底是什么关系,我们先不要理会,只知道他们存在关系即可!
- 5.模型
模型(model)模型是指对于某个实际问题或客观事物、规律进行抽象后的一种形式化表达方式。任何模型都是由三个部分组成的,即目标、变量和关系。棋盘棋子的表示就是模型。
- 6.数据结构与算法的关系
数据结构和算法之间完全是两个相互独立的学科,如果非说它们有关系,那也只是互利共赢,相辅相成的,不可或缺的,它们一起解决计算机中的问题 。
- 7.逻辑结构:
数据对象之间的关系
1.集合结构
2.线性结构
3.图形结构
4.树形结构
- 8.物理结构(存储结构):顺序存储结构、
顺序存储结构:存储之间是连续的,连续内存,知道1内存地址,即可知道2内存地址
链式存储结构:数据之间杂乱无章的
- 9.抽象数据类型:
一个数字模型及定义在该模型上的一组操作
数据类型:一组性质相同的值的集合以及定义在此集合上的一些操作的总称