返回主页 单片机教程 XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术 产品介绍 如何购买 进入论坛

 单片机教程 栏目导航   第一页..单片机入门教程    第二页..单片机c语言   第三页..红外遥控和步进电机    第四页..单片机问答

如果准备估计一个算法的MIPS,有什么好的途径?

   :算法的运行时间是指一个算法在计算机上运算所花费的时间。它大致等于计算机执行简单操作(如赋值操作,比较操作等)所需要的时间与算法中进行简单操作次数的乘积。通常把算法中包含简单操作次数的多少叫做算法的时间复杂性。它是一个算法运行时间的相对量度,一般用数量级的形式给出。度量一个程序的执行时间通常有两种方法:

l    一种是事后统计的方法。因为很多计算机内部都有计时功能,不同算法的程序可通过一组或若干组相同的统计数据以分辨优劣。但这种方法有两个缺陷:一是必须先运行依据算法编制的程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。因此人们常常采用另一种事前分析估算的方法。

l   一种是事前分析估算的方法。一个程序在计算机上运行时所消耗的时间取决于下列因素:

(1)依据的算法选用何种策略;

(2)问题的规模。例如求100以内还是1000以内的素数;

(3)书写程序的语言。对于同一个算法,实现语言的级别越高,执行效率就越低;

(4)编译程序所产生的机器代码的质量。这个跟编译器有关;

(5)机器执行指令的速度。

    显然,同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不相同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。

    一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本运算的原操作,以该基本操作重复执行的次数作为算法的时间度量。 

    算法的MIPS有专门的一门学问,可以去好好参考相关的数据结构书籍。

 

阅读本文的用户还阅读了下面的问题:

1.C语言和汇编语言在各有哪些优缺点?

2.C或汇编语言可以用于单片机,C++能吗?

3.搞单片机开发,一定要会C吗?

4.当开发项目时,用C还是用汇编开发好?

5.请问那里可以找到关于这方面的书或资料?

6.初学者到底是应该先学C还是汇编?

7.学了电子线路、C语言,感觉很迷茫怎么办?

8.请问作为学生,如何学好单片机?

9.如何才能才为单片机的高手啊?

10.女性是否适合单片机软件编程这个行业?

如果对本文有疑问,请到论坛提问 编辑:51单片机学习网 @ 2009-10-20校对 中国开发板最佳品牌  版权:部分由编辑摘引,权利属原著作人