数据结构学习笔记day4

1.4 算法和算法分析
算法 是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
5个特性:
1)有穷性
2)确定性
3)可行性
4)输入
5)输出
算法设计的要求:
1)正确性
2)可读性
3)健壮性
4)效率与低存储量需求
算法效率的度量 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。
度量程序的执行时间的方法:
1)事后统计的方法 方法缺陷:一是必须先运行依据算法编制的程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。
2)事前分析估算的方法 一个用高级程序语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:
1 依据的算法选用何种策略;
2 问题的规模
3 书写程序的语言,对于同一个算法,实现语言的级别越高,执行效率越低;
4 编译程序所产生的机器代码的质量;
5 机器执行指令的速度。
一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间度量。
一般情况下,算法中基本操作重复的次数是问题规模n的某个函数 f(n),算法的时间量度记作 T(n) =O(f(n)) 它表示随问题规模n的增大,算法执行时间的增长率和 f(n)的增长率相同,称做算法的渐进时间复杂度,简称时间复杂度。
语句的 频度 指的是该语句重复执行的次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值