CSDN论坛 > Java > Java SE

急求一个高效的算法 [问题点数:20分,结帖人yjsyjs]

Bbs5
本版专家分:2130
结帖率 100%
CSDN今日推荐
Bbs9
本版专家分:51665
Blank
蓝花 2010年5月 Java大版内专家分月排行榜第三
Bbs2
本版专家分:121
Bbs6
本版专家分:5797
匿名用户不能发表回复!
其他相关推荐
求素数的几种高效方法
转贴文章请注明:逸学堂 求解一个算法,我们首先要知道它的数学含义.依据这个原则,首先我们要知道什么是素数.; 素数是这样的整数,它除了表示为它自己和1的乘积以外,无论他表示为任何两个整数的乘积。找素数的方法多种多样。1:是从2开始用“是则留下,不是则去掉”的方法把所有的数列出来(一直列到你不想再往下列为止,比方说,一直列到10,000)。第一个数是2,它是一个素数,所以应当把它留下来,然后继续往下
找到链表的倒数第m个元素
设计一个算法,找到链表的倒数第m个元素,假设最后一个元素为倒数第0个。算法的复杂度为n。 方法一:遍历链表,得到链表的长度,再找到链表的第n-m个元素即可(如果链表的长度知道就直接找第n-m个元素)。 方法二:双指针查找。用两个指针p1、p2,开始都指向头节点。p1先移动,当p1和p2的距离为m时,两个指针一起移动,当p1移动到尾节点时,此时p2指向的节点就是要找的节点。 具体代码: #i
快速求数组中的最大值
var value = [1,2,3,6,8,4]; var max = Math.max.apply(Math,values);
求最大公约数的高效率算法
声明:下文中的算法与数学原理,都是从《编程之美》的2.7节中的解法三看到后,摘抄和修改而来的。 数学原理公式: 若x,y均为偶数,f(x,y) = 2 * f(x/2,y/2); 若只x均为偶数,f(x,y) = f(x/2,y); 若只y均为偶数,f(x,y) =  f(x,y/2); 若x,y均为奇数,f(x,y) = f(y, x- y);(两个奇数相减,必得偶
javabean求解旧错
javabean+jsp问题,求纠错。急/
求一个数的质因数(1个或n个)
在做 “容斥原理” 题时经常需要求出一个数的质因子,而且不是所求数的位数很多,就是一次求n多数的质因子。 第一种类型: 用于每次只能求出一个数的质因子,适用于题目中给的n的个数不是很多,但是n又特别大的情况。 第二种类型: 求出1~n任意给定数的质因子,适用于题目中给的n比较多,但n不是很大的情况。
A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
思路1:排序法   对集合A和集合B进行排序(升序,用快排,平均复杂度O(N*logN)),设置两个指针p和q,同时指向集合A和集合B的最小值,不相等的话移动*p和*q中较小值的指针,相等的话同时移动指针p和q,并且记下相等的数字,为交集的元素之一,依次操作,直到其中一个集合没有元素可比较为止。   优点:操作简单,容易实现。   缺点:使用的排序算法不当,会耗费大量的时间,比如
几种大数阶乘算法效率比较(Java)
完整代码:package bigdatamul;import java.math.BigInteger; /** * 大数阶乘 * * @Description: TODO(大数阶乘) * * @author yzy * @date 2016-12-20 上午9:31:14 * */ public class Test { public static void main(Stri
高效率求约数的个数
求约数的个数方法有很多,你可以使用O(n)的方法来遍历看是否为约数,更可以使用O(sqrt(n))复杂度的算法从1~sqrt(n)来判断个数,但是在这里我们给出的是一种稍快于O(sqrt(n))的方法,大概节省2/3左右的时间.
高效全组合算法实现
昨天晚上,一个在当当实现的同学回来,说遇到了一个算法没看明白,仔细一看,还挺有意思,现在给大家分享一下。 算法说明:当n大于2时,n个数的全组合一共有(2^n)-1种。 当对n个元素进行全组合的时候,可以用一个n位的二进制数表示取法。 1表示在该位取,0表示不取。 例如,对ABC三个元素进行全组合,用二进制表示如下   001表示取C,      001=1 010表示取B
关闭