- 博客(8)
- 资源 (15)
- 收藏
- 关注
转载 母函数与排列组合
在谈论母函数问题之前,我们先看一个简单的问题描述:假如有两组数据(A,B)和(C,D),每组中选出一个构成一个组合,总共有几种选法?很显然总共有4种选法:AC,AD,BC,BD。而且很容易联想到这个式子(A+B)*(C+D)=A*C+A*D+B*C+B*D。式子中的几个乘积项就是上面的4种选法。假如把问题换一下:每组中选出一个或0个数据构成组合,总共有几种组合?那么结果就变成:{空},A,B,C,
2017-10-18 10:00:47 981
转载 关于冒泡排序复杂度O(n)
我在许多书本上看到冒泡排序的最佳时间复杂度是O(n),即是在序列本来就是正序的情况下。但我一直不明白这是怎么算出来的,因此通过阅读《算法导论-第2版》的2.2节,使用对插入排序最佳时间复杂度推算的方法,来计算冒泡排序的复杂度。1. 《算法导论》2.2中对插入排序最佳时间复杂度的推算 在最好情况下,6和7总不被执行,5每次只被执行1次。因此, 时间复杂度为O(n) 2. 冒泡排序的时间复杂度
2017-10-17 18:42:49 1756
转载 五大常用算法——分治法,动态规划,回溯法,分支界限法,贪心算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间都与其
2017-10-17 15:37:53 14928 2
转载 基数排序
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。中文名
2017-10-17 11:12:34 810
原创 数学符号ln
ln在数学里表示的是以常数e(无理数,约等于2.71828...)为底的自然对数符号。即lnm=loge(m)其中,log (英语名词:logarithms)表示的是对数运算。当a^b=n时,也可表示为log(a)(n)=b。其中,a叫做“底数”,n叫做“真数”,b叫做“以a为底的n的对数”。 log(a)(n)函数叫做对数函数。
2017-10-13 17:29:29 6728
转载 算法导论------渐近记号Θ、Ο、o、Ω、ω详解
目录:1.渐近精确界记号:Θ(big-theta)2.渐近上界记号 :O(big-oh)3.渐近下界记号 :Ω(big-omege)4.非渐近紧确上界:o(小-oh)5.非渐近紧确下界:ω(小-omege)6.渐近记号Θ、Ο、o、Ω、ω关系7.参考资料1.渐近精确界记号:Θ(big-theta) 假设算法A的运行时间表达式T1(n)为:T1(n)=30n4+20n3+40n2+46n+100
2017-10-13 16:48:41 2925
转载 算法运行时间
1 大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。 logN 如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每一步都将问题的规 模缩减成几分之一 ,一般就会出现这样的运行时间函数。在我们所关心的范围内,可以认为运行时间小于一个大的常数。对数的基数会影响这
2017-10-13 16:14:43 1227
转载 算法中这三个符号:Θ、Ω、Ο表示什么意思
ΘO(f(n)),给出了算法运行时间的上界,也就是最坏情况下的时间复杂度; Ω(f(n)),给出了算法运行时间的下界,也就是最好情况下的时间复杂度; Θ(f(n)),给出了算法运行时间的上界和下界,这里Θ(f(n))是渐近的确界,另外,并非所有的算法都有Θ(f(n)).
2017-10-13 09:57:17 20342 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人