算法
小付同学ing
这个作者很懒,什么都没留下…
展开
-
时间复杂度
时间复杂度简单来说,时间复杂度描述的是算法运行的时间,通常使用O()来表示,例如O(n),《算法导论》给出的O()定义是指算法在最坏情况下运行时间的上界,例如在插入排序中,有序的情况下复杂度是O(n),最坏情况下是O(n^2)。再比如快速排序时间复杂度是O(nlogn),但是在数据有序的情况下时间复杂度是O(n^2),这和定义不符,因为这里我们关注的是一般意义上的时间复杂度,不是严格意义上的时间复杂度的上界,因为一般情况下不会在有序的情况下使用快排。其次是时间复杂度上的常数项为什么可以省略的问题,因为原创 2022-04-06 16:13:28 · 475 阅读 · 0 评论 -
斐波那契数列
斐波那契数列数列,又叫做兔子数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入。描述的是这样的一个数列,0,1,1,2,3,5,8…有两种写法,一种是递归法,一种是动态规划法。一,递归法递归需要用到栈,一般需要一个递推的公式,还需要一个递归的终止条件,这里的终止条件就是当n等于0,或者当n等于1的时候。int fib(int n){ if (n == 0) { return 0; } else if (n == 1) { return 1原创 2021-10-26 10:43:19 · 136 阅读 · 0 评论