算法设计
文章平均质量分 75
Zoor
这个作者很懒,什么都没留下…
展开
-
编程之美--N的阶乘中末尾有几个0
N的阶乘中末尾有几个0: 如果N!= K×10M,且K不能被10整除,那么N!末尾有M个0。再考虑对N!进行质因数分解,N!=(2^x)×(3^y)×(5^z)…,由于10 = 2×5,所以M只跟X和Z相关,每一对2和5相乘可以得到一个10,于是M = min(X, Z)。不难看出X大于等于Z,因为能被2整除的数出现的频率比能被5整除的数高得多,所以把公式简化为M = Z。 ret = 0;转载 2012-11-07 15:51:35 · 1393 阅读 · 0 评论 -
【转】分治法,动态规划及贪心算法感悟
分治法,动态规划及贪心算法感悟 博客分类: · 算法 算法设计模式 分治法,动态规划法,贪心算法这三者之间有类似之处,比如都需要将问题划分为一个个子问题,然后通过解决这些子问题来解决最终问题。但其实这三者之间的区别还是蛮大的。 1.分治法 分治法(divide-and-conquer):将原问题划分成n个规模较小而结构与原问题相似的子问转载 2012-10-14 19:55:31 · 843 阅读 · 0 评论 -
快速排序&半快速排序思想求n个无序数中第k或者前k个数
一、快速排序总结: 给快速排序做个总结是看到之前上数据结构的时候给老师写的一个关于考试程序纠错的邮件。错误的程序如下: void QuickSort(RecType R[],int s,int t) { int i=s,j=t; RecType tmp; if (s<t) { tmp=R[s]; while (i!=j) {原创 2012-12-27 16:38:07 · 4028 阅读 · 0 评论