笔记(1)—— 十分钟搞定时间复杂度

文章标题

《(数据结构)十分钟搞定时间复杂度(算法的时间复杂度)》

文章地址

https://www.jianshu.com/p/f4cca5ce055a

推荐原因

先告诉你时间复杂度 怎么算 ,再 总结计算方法 ,最后告诉你 速算技巧,这也许就是人人想要的干货。

笔记

一,如何理解时间复杂度中的: log ⁡ n \log{n} logn

  1. 在复杂度计算中,将 log ⁡ 2 n \log_2{n} log2n,简写为 log ⁡ n \log{n} logn
  2. 我们知道, a x = n a^x=n ax=n,此时有 x = log ⁡ a n x=\log_a{n} x=logan
    不知道你们是怎么理解记忆这个公式的,当初我是这样记得
    —— log ⁡ a n \log_a{n} logan就是表示 a a a的多少次方等于 n n n
    总之,在实际应用时,总是觉得很拗口,需要反应一会儿。
    后来一个 搞算法的博士 告诉我,你可以多拆解一下,这样理解记忆
    —— log ⁡ a n \log_a{n} logan就是表示多少个 a a a相乘等于 n n n
    有没有感觉豁然开朗?尽管只是进行了一步简单的拆解,理解记忆和使用都变得尤为简单。不知道你们的数学老师当初怎么传授你的,反正直到这个 算法博士 的点拨,我才觉得我之前的数学白学了,,,
    此时, log ⁡ n \log{n} logn就是表示多少个 2 2 2相乘等于 n n n
    对数时间复杂度,在 二分查找快速排序跳跃表归并排序 等常用算法都有涉及。如果,你还是不好理解,不妨再拆一步得了
    —— log ⁡ n \log{n} logn就是表示 n n n一直除以 2 2 2能除多少次,也就是算法中或代码中, n n n个数,每次分两种情况讨论,能分多少次。

你可能感兴趣的:(学习笔记)