算法
文章平均质量分 91
liugang594
这个作者很懒,什么都没留下…
展开
-
如何判断一个数是2的幂次方
一个数是2的幂次方,那么这个数的二进制位数中,只能有一位数值为1. 例如:10000, 100, 1等等。 从中可以看到,如果把这个数减去1,那么结果值的2进制位应该如下:1111,11,0等等。 这两个数的特点是:他们做或的时候,得到的结果是他们的和,例如: 10000和1111的或结果是11111, 100和11的或值是111,1和0的或是1。 所以我们...2009-08-21 11:24:36 · 281 阅读 · 0 评论 -
求质数的方法
看java核心,有一求质数的程序: public class Sieve { public static void main(String[] s) { int n = 2000000; long start = System.currentTimeMillis(); BitSet b = new BitSet(n + 1);//用于记录是否为质数 int count...原创 2010-09-02 11:42:29 · 94 阅读 · 0 评论 -
求某个数内所有的质数
最近发现有一个类:java.util.BitSet,挺好用的。 例如在求某个数下所有的质数,可以如下实现: public static int[] listPrimesUnder(int number) { assert number > 1; int count = 0; BitSet bs = new BitSet(number); for (i...原创 2011-01-10 10:56:40 · 222 阅读 · 0 评论 -
计算Fibonacci数列
Fibonacci数列的定义如下(看百度百科): F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 传统方法 首先先看一个传统的基于递归的实现: public static int fibonacci1(int i) { if (i < 0) { throw new IllegalArgumentException("...原创 2014-05-04 15:37:20 · 312 阅读 · 0 评论 -
快速排序的几种实现
快速排序是最经典的排序之一,已经有各种各样经过论证的实现方式。 引用百度百科里的介绍: 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整...原创 2014-05-06 23:13:34 · 208 阅读 · 0 评论