码迷,mamicode.com
首页 > 编程语言 > 详细

算法和算法分析

时间:2016-01-31 13:18:36      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

1.算法

算法(algorithm)是对特定问题求解步骤的一种描述,它是指令有限序列,其中每一条指令表示一个或多个操作;此外,一个算法还具有下列5个重要特性:
(1)有穷性
(2)确定性
(3)可行性
(4)输入
(5)输出
 
2.算法设计的要求
通常设计一个“好”的算法应考虑达到以上目标:
(1)正确性(correctness)---算法应当满足具体问题的需求。
(2)可读性(readability)---算法主要是为了人的阅读与交流,其次才是机器执行。
(3)健壮性()---当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫明其妙的输出结果。
(4)效率与低存储量需求---效率指的是算法执行的时间。对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高。存储量需求指算法执行过程中所需要的最大存储空间,效率与低存储量需求这两者都与问题的规模有关。
 
3.算法效率的度量
算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量,而度量一个程序的执行时间通常有两种方法。
(1)事后统计的方法
(2)事前分析估算的方法---一个用高级程序语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:
   =>依据的算法选用何种策略;
   => 问题的规模;
   =>书写程序的语言,对于同一个算法,实现语言的级别越高,执行效率就越低;
   =>编译程序产生的机器代码的质量;
   =>机器执行指令的速度;
 
一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量度。
 
4.算法的存储空间需求
类似于算法的时间复杂度,本教学资源以“空间复杂度度”(space complexity)作为算法所需存储空间日量度,记作:
S(n)=O(f(n))  //n为问题的规模( 或大小)。

 演示1:试写一算法,自大至小依次输出顺序读入的三个整数X,Y和Z的值

算法和算法分析

标签:

原文地址:http://www.cnblogs.com/koopoo/p/5172948.html

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