一个算法的执行时间大致上等千其所有语句执行时间的总和, 而语句的执行时间则为该条语 句的重复执行次数 和执行一次所需时间的乘积。 一条语句的重复执行次数称作语句频度(FrequencyCount)。 由千语句的执行要由源程序经编译程序翻译成目标代码,目标代码经装配再执行, 因此语句 执行一次实际所需的具体时间是与机器的软、 硬件环境(如机器速度、 编译程序质量等)密切相 关的。 所以, 所谓的算法分析并非精确统计算法实际执行所需时间, 而是针对算法中语句的执行 次数做出估计, 从中得到算法执行时间的信息。 设每条语句执行一次所需的时间均是单位时间, 则一个算法的执行时间可用该算法中所有语 句频度之和来度量。
例:求两个n阶矩阵的乘积算法
for(i=l;i<=n;i++) //频度为 n+l
for (j=l; j<=n; j++) //频度为 n* (n+l)
{
c[i] [j]=O; //频度为 n ^2
for(k=l;k<=n;k++) //频度为 n ^2 * (n+l)
c[i] [j]=c[i] [j]+a[i] [k]*b[k] [j] //频度为 n^3
该算法中所有语句频度之和, 是矩阵阶数n的函数, 用.f{n)表示之。换句话说, 上例算法的 执行时间与f伍)成正比。
C语言入门指南系列-学习视频教程-腾讯课堂
C语言与数据结构算法-学习视频教程-腾讯课堂
C++语言入门指南系列-学习视频教程-腾讯课堂
windows编程入门篇-学习视频教程-腾讯课堂