"数组数据结构概念及影响程序设计的因素"

0 下载量 184 浏览量 更新于2023-12-22 收藏 116KB PPT 举报
&n); if(n>max) max=n; } printf(“max=%d\n”,max); } 数据结构的设计 因为要求解的数据是100个数,所以我们选择的数据结构是数组,因为数组可以存放大量的相同类型的数据,所以合适。 7.2 影响程序设计的因素 影响程序设计的因素有很多,常见的有时间复杂度和空间复杂度。 7.2.1时间复杂度 在程序设计中,时间复杂度一般用T(n)来表示,定义为问题的规模n的函数T(n)=O(f(n)),其中f(n)是n的某个函数。要解决一个问题,不同的算法可能需要的时间不同。 7.2.2 空间复杂度 在程序设计中,空间复杂度一般用S(n)来表示,定义为问题的规模n的函数S(n)=O(f(n)),其中f(n)是n的某一个函数。因为计算机的内存有限,所以要合理的使用内存资源。 说明:空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,它是一个和输入数据规模n和算法执行期间所需的存储空间有关的一个函数。因此,算法的空间复杂度与算法所用的存储空间有关 为了满足我们对算法复杂度的需求,引入渐进时间复杂度和空间复杂度的概念。 【注意: 渐进时间复杂度与渐进空间复杂度是一个算法对于算法所需的计算工作量的度量,渐进时间复杂度与渐进空间复杂度是一个算法时 / 空效率的函数】。 说明:对于一个给定的算法,其渐进时间复杂度和渐进空间复杂度的定义 1) 渐进时间复杂度能够描述算法的执行时间,给出了一个算法所使用的基本操作的数量的增长率 2)渐进空间复杂度能够描述算法在运行过程中临时占用存储器空间大小的增长率,即一个算法所需的存储空间量与问题规模n之间的函数关系。 示查找最大元素的算法A1:直接法 max=ar[0]; For(i=1;i<n;I++) {If(ar[i]>max) max=ar[i];}渐进时间复杂度:T(n)=O(n)明显最劣的算法[要做n-1次比较] 渐进空间复杂度:S(n)=O(1) 示查找最大元素的算法A2:间接法 max=ar[0]; For(i=1;i<n;i++) {If(PTable[i]>maxpos) { maxpos=i; max=ar[i];}}渐进时间复杂度:T(n)=O(n)明显次于A1算法[要做n-1次比较] 渐进空间复杂度:S(n)=O(1) 影响程序设计的因素 在程序设计中,影响程序设计的因素有很多。下面结合一个具体的例题来说明。 例:设计一个程序来求解n个数中的最大值。 分析: 根据上述例题,我们可以看出在求解这个问题的过程中影响程序设计的因素有很多。从最初设计算法到选择数据结构,再到对时间复杂度和空间复杂度的分析,都是有很多因素需要考虑的。 结论:在程序设计过程中,数据结构除了是一种抽象数学模型外,更是程序设计和算法实现的重要基础。数据结构的设计不当会严重影响程序设计的质量,所以在程序设计过程中要重视数据结构的设计。 以上就是本节的学习内容,希望进行好的学习,多进行编程练习,不断提高自己的算法设计水平和编程实战能力。