算法分析
文章平均质量分 92
算法题刷刷
原创文章公众号:算法提刷刷、潮汐朝夕
我是潮汐,北京人,上海交大电子信息专业本硕。2018年硕士毕业后一直做风控AI算法工程师,深耕AI技术,金融科技和风控服务。在大型社交平台做过内容合规和反作弊,目前主要做大风控业务下的系统研发和建模。爱好骑行,围棋,钢笔,算法竞赛。对计算机、人工智能、数学、算法感兴趣的同学,欢迎关注我,阅读更多原创文章。
展开
-
沃利斯积分的分段渐近估阶:拉普拉斯方法的思想启蒙
本文我们解决了沃利斯积分In∫−π2π2cosxndxn→∞In∫−2π2πcosxndxn→∞的渐近估阶问题。解决过程可以推广到被积函数在幂上有一个大参数 n 这一大类情形,解决这一大类情形的方法称其为拉普拉斯方法,步骤如下:(1) 忽略尾部:估计原积分的尾部并忽略(2) 中心逼近:在中心区域进行逼近并得到误差界(3) 完成尾部:将尾部的积分范围加到中心区域的逼近中。原创 2024-02-19 08:52:13 · 936 阅读 · 0 评论 -
插入多少次发生哈希冲突:拉马努金Q分布与二元渐近分析
本文我们解决了第一次发生哈希冲突时,平均插入了多少数据的问题。其结果正是我们拉马努金 Q 函数QNQ(N)QN。QNQ(N)QN是一个和式,具体为QN∑k1∞fkNQNk1∑∞fkN,本文我们详细推导了fkNf(k, N)fkN的渐近估阶,其推导过程是处理二元渐进性非常有代表性的操作,有了这个例子,以后再遇到二元渐近分析的问题,思路可以仿照本例。在此前解决冒泡排序平均扫描趟数的问题中,我们接触过拉马努金 Q 函数QNQ(N)QN。原创 2024-02-16 09:46:59 · 833 阅读 · 0 评论 -
冒泡排序平均需要跑多少趟:拉马努金Q函数初探
本文我们讨论了排序算法的分析中的一个问题:冒泡排序平均需要跑多少趟。首先引入了排列中的一些概念定义,包括逆序、逆序表,然后基于冒泡排序的算法流程,发现冒泡排序扫描的趟数就是逆序表中的最大值。再结合排列的逆序表自身的性质,以及通过累积分布函数求数学期望的性质,最终我们将问题归结到了∑k0Nk!kN−kN!k^{N-k}}{N!k0∑NN!k!kN−k的渐近估阶。原创 2024-02-15 11:33:39 · 955 阅读 · 0 评论 -
n节点的无序标号树有多少种:拉格朗日反演的应用
本文我们讨论了图论中的算法分析的常见问题:n 节点的无序标号树共有多少个。其结果称为凯莱公式。本文的推导基于拉格朗日反演,首先介绍了拉格朗日反演定理的描述,然后用该定理重新解决了二叉树计数的问题,可以发现拉格朗日反演在简化生成函数计数问题的价值。凯莱公式是图论中的经典结论,主流的推导方式有矩阵树定理和 Prufer 编码等,前置的知识都比较冗长。而本文使用拉格朗日反演,非常轻易地就得到了结果。当然为了突出重点,一些结论本文跳过了推导步骤,比如 n 节点无序标号树的指数生成函数满足的函数方程Czz。原创 2024-02-13 11:33:44 · 992 阅读 · 0 评论 -
在归并排序中对小数组采用插入排序
摘要: 使递归的叶子变粗【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】在文章中,我们了解了分治算法的设计和分析方法,并且得出了归并排序算法的最坏情况运行时间为Θnlogn。在文章中,我们了解了算法分析的方法论,并且以插入排序为例,得到了插入排序最坏情况运行时间为Θn2。虽然开起来好像归并排序比插入排序的运行时间要好,但插入排序中的常量因子可能使得它在 n 较小时,在许多机器上实际运行得更快。因此归并排序中,当子问题规模足够小时,采用插入排序。原创 2024-02-10 13:54:50 · 762 阅读 · 0 评论 -
二叉树的计数:直接方法与间接方法
本文我们讨论了有N1N+1N1个虚拟节点的二叉树的个数,类似的树上的计数是分析树上算法的基础问题。基于生成函数的解决过程可以分为三步,第一步是找到生成函数满足的方程,第二步是求解方程得到生成函数,第三步是将生成函数展开取zNz^{N}zN项的系数。其中最关键的是第一步,只要得到了生成函数满足的方程,不管是微分方程还是函数方程,后续的过程就比较好解决了。原创 2024-02-10 13:49:27 · 1034 阅读 · 0 评论 -
算法分析中的欧拉方程:基于三数中值法的快速排序
本文我们分析了快排中的一个常见的优化思路:三数中值法。其动机主要是为了解决分割元取字数最小值时会造成过多无效比较的问题。写出优化后算法的递归式,利用生成函数性质转化为微分方程,然后我们发现这竟然是我们之前考试刷过的欧拉方程,可以用换元和微分算子法解出显式解得到生成函数。然后将生成函数展开,取其znz^{n}zn的系数就得到了平均情况的比较次数,将调和数的渐近估阶代入,得到比较次数的渐近估阶。上述步骤中,求解方程得显式解,以及将显式解展开取znz^{n}zn。原创 2024-02-04 10:34:19 · 902 阅读 · 0 评论