好的算法可以使程序更加出色的解决实际问题,因此关于好的算法的标准是必要的,算法的分析主要是针对
算法的效率而言的。好的算法要节省空间及时间资源。
空间代价:算法在运行过程中消耗的存储空间。
时间代价:算法运行所需要的时间。
测试算法效率的方法有很多种,每种测试方法的侧重点也各不相同。算法分析技术中最常用的一种方法
称为:算法的事前估计(算法被调用前进行)。
事前估计分为对算法空间复杂度的度量与对算法时间复杂度的度量。
空间复杂度是指当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所占用的存储空间以
某种单位由1增加到s(n),则称此算法的空间复杂度为s(n) 。
时间复杂度是指当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所耗费的时间以某种
单位由1增加到t(n),则称此算法的空间复杂度为t(n) 。
对于这个空间复杂度和时间复杂度的估计通常的得到的只是算法在空间代价和时间代价方面的近似值,并
非准确值!这是因为准确值的获得将使估计过程十分繁琐,也没有必要。
在对算法进行估计时直接估计算法中时间(空间)复杂度最大的部分就可以了,这称为时间(空间)复杂
度的渐进表示法。
利用渐进表示法得到的算法复杂度通常用字母O表示,称为大O表示法。大O表示法得到的是算法复杂度的数
量级信息,这个数量级信息是程序在最坏情况下的时间(空间)代价。
使用大O表示法时有加法规则与乘法规则:
*大O表示法的加法规则是指当两个并列的程序段的时间代价不同时,那么将这两个程序段连在一起后整个
程序段的时间代价为大的那个。
*大O表示法的乘法规则是指当两个嵌套的程序段的时间代价不同时,那么整个程序段的时间代价为两个之
积。
使用大O表示法估计程序复杂度只需考虑程序关键操作的步数,而无需考虑非关键操作对算法复杂度造成的
影响。(关键操作大多存在于循环与递归中。对于单个循环而言,在循环内的简单语句即为关键操作。对
于多个并列的循环而言,先计算各个循环的算法复杂度,最后再利用大O表示法的加法规则计算整个并列循
环的算法复杂度)
分享到:
相关推荐
算法定义及算法分析初步 属基本内容,应牢固掌握 多媒体课件 1 1 第二章 线性表 5 1.线性表的定义及运算 2.线性表的顺序及链式存储结构、相关运算的算法实现 3.线性表应用举例 属基本内容,应牢固掌握 多媒体...
算法设计
数据结构与算法分析(第四版)源代码,对初步学习c++和数据结构的人来说,是个不错的选择,与教材配套最好
《算法导论(原书第3版)/计算机科学丛书》将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的...
《算法初步》教材分析.ppt
很不错的paxos算法分析文档,值得一看,虽不能深入研究,但是可以初步了解!
小学信息技术_第3单元 算法思想初步教学设计学情分析教材分析课后反思.docx
国际自由原子时原始权重算法初步分析.docx
一些算法ch1 复杂性分析初步帮你进行一些算法分析
有关算法设计的讲义: 第一章:复杂性分析初步 第二章:图与遍历算法 第三章 分 治 算 法 第四章:贪心算法 第五章:动态规划算法 第六章:回溯算法 第七章 分枝-限界法 第八章 NP-完全问题
算法语言简介与误差分析初步FORTRAN数值方法及其在物理学中应用
计算机算法设计与分析讲义,包含复杂性分析初步,图与遍历算法,分治算法,贪心算法,动态规划算法,回溯算法等
对于如何消化掉这本书,我初步给出一个建议: 读上Weiss的《数据结构与算法分析 C语言描述》三遍,能坚持下来,你的收获会很大: 第一遍,通读本书,不要丢掉任何细节,这一遍下来至少不能对书中涉及到的内容存在...
通过01背包、电路布线、多边形游戏、石子合并、矩阵连乘、最长单调子序列的学习,初步掌握了动态规划思想,将学习的源点码和部分心得与大家分享!
Bluetooth(蓝牙)是由Ericsson等五家世界级的计算机和...本文重点研究了Bluetooth无线传输协议的跳频算法,给出了算法流程及分析说明,并且对信道跳频序列进行了初步的性能分析。结果表明该序列具有良好的均匀性和随机性。
高考数学总复习第9章《统计统计案例算法初步》分析.ppt
GPS全球电离层TEC的并行算法建模及初步结果分析.pdf
大数据-算法-SIMPLE系列算法的Fourier分析及其改进的初步研究.pdf
算法设计与分析教学大纲,通过学习该课程,使学生在知识方面要求: 掌握算法的定义及基本概念、计算模型和复杂度的衡量;为分析算法的复杂性做准备,要了解相应的数学知识;掌握算法设计的过程和方法;掌握算法的...