码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构第四课笔记------------狄泰软件学院

时间:2018-01-12 15:57:55      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:度量   问题:   程序   n+1   影响   str   运行时   return   for   

程序的效率

问题:
如果两个算法都符合功能性需求,那工程中最关心的其他特性是什么?如何比较评判?
性价比(效率)是工程中最关注的的算法附加特性!
算法效率的度量
1.事后统计法:比较不同算法对同一组输入数据的处理时间。
缺陷:(1)为了获得不同算法必须编写相应程序
(2)运行时间严重依赖硬件以及运行时的环境因素
(3)算法的测试数据选取困难
2.事前分析估算:依据统计的方法对数据进行估算
影响算法效率的主要因素:
(1)算法采用的策略和方法
(2)问题的输入规模
(3)编译器所产生的代码
(4)计算机执行速度

int func(int a[], int len)       // ==> (n*n + 2)
{
    int ret = 0;                            // 1

    for(int i=0; i<len; i++)     
    {
        for(int j=0; j<len; j++) 
        {
            ret += a[i] * a[j];         // n * n
        }
    }

    return ret;                       // 1
}

程序效率的关键部分为n^2,随着n的不断增大,操作的数量很大程度的增大,不同的程序在这时候效率的差距就体现出来了。
总结:
事前分析估算法通过操作数量来判断程序效率。
判断一个算法效率是只需关注最高阶就能得出结论
如:2n+1 与 n^2+1 只需比较 n与n^2。

数据结构第四课笔记------------狄泰软件学院

标签:度量   问题:   程序   n+1   影响   str   运行时   return   for   

原文地址:http://blog.51cto.com/13563176/2060259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!