对数与大O表示法——算法

1)对数:

你可能不记得什么是对数了,但一定记得什么是幂,\log_1_0100表示将多少个10相乘等于100,答案是2个。因此\log_1_0100=2;对数运算是幂运算的逆运算。

使用大O表示法讨论算法的运行时间的时候,log指的都是\log_2,比如log8=3(因为2^3=8),比如log1024=10(因为2^1^0=1024)。

在算法的时间复杂度的计算中,经常会用到log时间,因此我们必须明白对数的概念。

2)大O表示法:

在日常的算法学习过程中,经常会遇到大约5种大O表示法表示的算法运行时间:

  • O(logn),也叫做对数时间,常见的算法比如二分查找;
  • O(n),也叫做线性时间,常见的算法比如简单查找;
  • O(n*logn),这样婶儿的——常见的算法比如快排(快速排序),一种很常用的、速度较快的算法;
  • O(n^2),——常见的算法比如选择排序、冒泡排序,一种速度较慢的算法;
  • O(n!),——常见的算法比如旅行商问题的解决方案,一种速度非常慢的算法;

3)启示:

  • 大O表示法计算的是操作数;
  • 算法的速度指的并不是运行时间,而是操作数的增速;
  • 讨论算法的速度的时候,我们说的是随着输入的不断增加,其算法的运行时间将以什么样的速度增加;
  • 算法的运行时间用大O表示法表示;
  • O(logn)比O(n)快,当待查找的元素的数量越多的时候,前者比后者的速度就越快;

 ——《算法图解》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值