大话数据结构读书笔记《2算法》

2 算法

2.1 算法定义:

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

2.2 算法的特性

算法具有五个基本特性:

  • 输入:有0或多个输入
  • 输出:至少一个或多输出
  • 有穷性:在执行有限步骤后,自动结束不会出现无限循环
  • 确定性:每一步骤都有明确含义,不会出现二义性
  • 可行性:每一步都能够通过执行有限次数完成

2.3 算法设计的要求

  • 正确性
  • 可读性
  • 健壮性:当输入数据不合法时,算法也能作出相关的处理,而不是产生异常或莫名其妙的结果
  • 时间效率高和存储量低

2.4 算法度量方式

  • 事后统计方法
  • 事前分析估算方法

基本的操作数量必须表示成输入规模的函数。

2.5 算法复杂度

计算算法的时间复杂度其实是一个很基础的东西,目前看主要就是先看执行次数和问题规模的函数f(n),然后推导大O阶的方法计算出时间复杂度,其实只需要关注f(n)中的最高阶的阶数,因为在问题规模趋向于无限大的时候,起决定性作用的就是这个最高阶。计算方法如下:
在这里插入图片描述

2.6 常见时间复杂度:

执行次数函数非正式术语
12 O ( 1 ) O(1) O(1)常数阶
2 n + 3 2n+3 2n+3 O ( n ) O(n) O(n)$线性阶
3 n 2 + 2 n + 1 3n^2+2n+1 3n2+2n+1 O ( n 2 ) O(n^2) O(n2)平方阶
5 l o g 2 n + 20 5log_2n+20 5log2n+20 O ( l o g n ) O(log_n) O(logn)对数阶
2 n + 3 n l o g 2 n + 19 2n+3nlog_2n+19 2n+3nlog2n+19 O ( n l o g n ) O(nlog_n) O(nlogn) n l o g n nlogn nlogn
6 n 3 + 2 n 2 + 3 n + 4 6n^3+2n^2+3n+4 6n3+2n2+3n+4 O ( n 3 ) O(n^3) O(n3)立方阶
2 n 2^n 2n O ( 2 n ) O(2^n) O(2n)指数阶

O ( 1 ) < O ( l o g n ) < O ( n ) < O ( n l o g n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1)<O(log n)<O(n)<O(nlog n)<O(n 2)<O(n 3)<O(2 n)<O(n!)<O(n^n) O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

2.7 最坏情况与平均情况

一般没说明的情况下,指最坏情况
平均情况具有参考意义

2.8 算法空间复杂度

通过计算算法所需的存储空间实现。
“时间复杂度”指运行时间的需求
“空间复杂度”指空间需求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值