浅谈大O表示法(兼MathJax测试)
大O表示法是算法竞赛中常用于表示复杂度的方法。其核心思想是抓住主要矛盾,忽略次要矛盾,即只算多项式中次幂(或者说:增长速度)最高的项,而且“向上取整”。
比如斐波那契数列 有
已知求斐波那契数列第项所需计算次数大致为次,因此时间复杂度为。这正是所谓“向上取整“。
常见的时间复杂度有以下几种,从小到大排序分别为。
由于剪枝的存在,关于什么时候选用什么时间复杂度的算法并没有定论,只能用心来感受。
后记:本文的数学公式基于Kramed与MathJax交火渲染生成。如你所见,MathJax在行外公式很成功,写内联公式时失败了,这个问题下辈子再解决吧。
更新:已通过改用renderer-markdown-it-plus与KaTex解决了内联公式的问题。