"数组数据结构概念及影响程序设计的因素"
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个数中的最大值。 分析: 根据上述例题,我们可以看出在求解这个问题的过程中影响程序设计的因素有很多。从最初设计算法到选择数据结构,再到对时间复杂度和空间复杂度的分析,都是有很多因素需要考虑的。 结论:在程序设计过程中,数据结构除了是一种抽象数学模型外,更是程序设计和算法实现的重要基础。数据结构的设计不当会严重影响程序设计的质量,所以在程序设计过程中要重视数据结构的设计。 以上就是本节的学习内容,希望进行好的学习,多进行编程练习,不断提高自己的算法设计水平和编程实战能力。
2021-09-28 上传
点击了解资源详情
2022-12-20 上传
2021-09-28 上传
2021-09-28 上传
2022-05-07 上传
智慧安全方案
- 粉丝: 3812
- 资源: 59万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜