算法和算法分析

目录

注:部分素材来源于我的大学老师

1.算法定义

2.算法的描述

3.算法的特性 

4.算法的评价

5.算法的效率的度量

(1)事后统计

(2)事前分析估计

6.时间复杂度的渐进表示法

语句的频度(Frequency Count )

时间复杂度T(n)按数量级递增顺序为:

​各种数量级的时间复杂度:

常用时间复杂度频率表:

 渐进空间复杂度


注:部分素材来源于我的大学老师

1.算法定义

一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列

2.算法的描述

自然语言  流程图  程序设计语言  伪码

3.算法的特性 

1.输入     有0个或多个输入  

2.输出     有一个或多个输出(处理结果)  

3.确定性  每步定义都是确切、无歧义的  

4.有穷性  算法应在执行有穷步后结束  

5.有效性  每一条运算应足够基本

4.算法的评价

1.正确性

2.可读性

3.健壮性

4.高效性(时间代价和空间代价)

5.算法的效率的度量

1.算法效率:用依据该算法编制的程序在计算机上执行所消耗的时间来度量

2.衡量算法效率的方法:事后统计 事前分析估计    

(1)事后统计

利用计算机内的计时功能,不同算法的程序可以用一组或多组相同的统计数据区分  

缺点:

>>必须先运行依据算法编制的程序

>>所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣  

(2)事前分析估计

 一个高级语言程序在计算机上运行所消耗的时间取决于:    

>> 依据的算法选用何种策略      

>> 问题的规模      

>> 程序语言      

>> 编译程序产生机器代码质量      

>> 机器执行指令速度           

同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,———使用绝对时间单位衡量算法效率不合适

6.时间复杂度的渐进表示法

1.算法中基本语句重复执行的次数问题规模n的某个函数f(n),算法的时间量度记作: T(n)=O(f(n))  

>>算法中重复执行次数和算法的执行时间成正比的语句 对算法运行时间的贡献最大

>>n越大算法的执行时间越长

     排序:n为记录数

     矩阵:n为矩阵的阶数

     多项式:n为多项式的项数

     集合:n为元素个数

     树:n为树的结点个数

     图:n为图的顶点数或边数

2.数学符号“O”的定义为:

    若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n) = O(f(n))表示存在正的常数C和n0,使得当n≥n0时都满足0≤T(n)≤Cf(n)。

表示随着n的增大,算法执行的时间的增长率和f(n)的增长率相同,称渐近时间复杂度

语句的频度(Frequency Count )

重复执行的次数:n*n; T( n ) = O ( n ^2) 即:矩阵加法的运算量和问题的规模n的平方是同一个量级

n * n阶矩阵加法: 
for( i = 0; i < n; i++)     
    for( j = 0; j < n; j++)
         c[i][j] = a[i][j] + b[i][j];

分析算法时间复杂度的基本方法:

>>找出语句频度最大的那条语句作为基本语句

>>计算基本语句的频度得到问题规模n的某个函数f(n)

>>取其数量级用符号“O”表示

时间复杂度是由嵌套最深层语句的频度决定的

 

 当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊

时间复杂度T(n)按数量级递增顺序为:

 各种数量级的时间复杂度:

常用时间复杂度频率表:

 渐进空间复杂度

1.空间复杂度:算法所需存储空间的度量,记作:    S(n)=O(f(n))            

>>其中n为问题的规模(或大小)

2.算法要占据的空间

>>算法本身要占据的空间,输入/输出,指令,常数,变量等

>>算法要使用的辅助空间

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值