数据结构
定义
我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结 构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如 查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操 作,这个相应的操作也叫算法
数据结构 = 个体的存储 + 个体之间的关系的存储
算法 = 对存储数据的操作
狭义上:
数据结构是专门研究数据存储的课程
数据的存储包括两方面:个体的存储和个体之间的关系的存储
广义上:
数据结构既包含数据的存储,也包含数据的操作
算法
即解题的方法和步骤
衡量算法的标准
1、时间复杂度
大概程序要执行的次数,而非执行的时间(因为机器的运行速度在不断发展,而同一时期不同配置的机器运行速度也有所不同)
2、空间复杂度
算法执行过程中大概所占的最大内存(因为时间复杂度和空间复杂度难以精确计算,所以这里用上“大概”这个词)
3、难易程度
是否让人易于理解
4、健壮性
对于学习来说,上面的第三个最重要,但如果是要搞研究,还是前两个更重要
狭义上
算法和数据的存储方式密切相关,它是对存储数据的操作
对不同的存储结果,要完成某一个功能所执行的操作是不一样的
比如:
要输出数组中所有的元素的操作和
要输出链表中所有元素的操作肯定是不一样的
这说明:
算法是依附于存储结构的
不同的存储结构,所执行的算法是不一样的
广义上
算法和数据的存储方式无关
这就是泛型思想
泛型:
利用某种技术达到这样的效果:不同的存储方式,执行的操作是一样的,即同一种逻辑结构,无论该逻辑结构物理存储是什么样子,我们可以对它执行相同的操作
数据结构的地位
数据结构是软件中最核心的课程
程序 = 数据的存储 + 数据的操作 + 可被计算机执行的语言
(如有错误,敬请指正)