
算法分析与设计
hengshan
这个作者很懒,什么都没留下…
展开
-
Triomino问题,即用一个L形的瓦片(有三个小正方形组成)覆盖一个缺少了一个方块(可以是棋盘上的 任何位置)的2^n X 2^n棋盘
Triomino问题的动态演示程序。源代码:/*** 此程序用于解决的问题是:用一个L形的瓦片(有三个小正方形组成)覆盖一个缺少了一个方块(可以是棋盘上的* 任何位置)的2^n X 2^n棋盘*/import javax.swing.*;import java.awt.*;import java.applet.*;import java.awt.geom.*;import java.awt.eve原创 2005-11-13 19:49:00 · 5296 阅读 · 1 评论 -
大整数阶乘的运算(可以计算1000!)
由于阶乘运算的增长速度特别快(比2^n的增长速度快),对于较小整数的阶乘运算采用简单的递规算法可以实现,但是对于大整数的乘法(比如1000!),则传统的递规算法就失去了作用。由于本人的水平不高,用下列拙劣的方式实现,请高人多多指教。具体如下:定义一个很长的数组,用数组的每一项表示计算结果的每一位。例如,7!=5040,a[1000],则a[0]=0,a[1]=4,a[2]=0,a[3]=5。程序源原创 2005-11-13 19:39:00 · 10890 阅读 · 3 评论 -
用java语言实现汉诺塔的演示程序
利用传统的递规算法实现汉诺塔的演示程序。源代码:/** *本程序完成的功能是利用汉递规算法实现汉诺塔的动态演示程序 */import javax.swing.*;import java.awt.geom.*;import java.awt.event.*;import java.awt.*;public class Hanio extends JApplet implements ActionLi原创 2005-11-13 19:45:00 · 5727 阅读 · 2 评论 -
用递规与分治策略,找出数组中最大元素的位置
这个问题是用递规与分治策略,找出数组中最大元素的位置。就问题本身而言,很简单,并且有很多种更高效的实现方法,本文意在介绍递规与分治的思想。源代码:/***用分治法找出数组中最大元素的位置*/public class MaxPosition{ static int MaxElePosition(int a[],int l,int r) { if(l { int mid = (l+r)/2原创 2005-11-13 20:01:00 · 2532 阅读 · 1 评论 -
求出32位整数左边第一位是1的算法
<br />算法思路:<br />总体采用分治法<br />1、先将32位分成两个16位<br />2、在16位中再分析出8为,依次类推<br /><br />unsigned ffs(unsigned n)<br />{<br /> if (n == 0)<br /> return 0;<br /><br /> unsigned c = 32;<br /> if (!(n & 0xffff0000))<br /> {<br /> c -= 16;<br原创 2011-05-23 18:18:00 · 1560 阅读 · 0 评论 -
《算法导论》课后习题 2.1-3
Consider the searching problem:Input: A sequence of n numbers A = and a value v.Output: An index i such that A[i] = v or the special val原创 2011-10-14 20:46:51 · 2107 阅读 · 0 评论 -
计算n位m进制所有整数的算法
算法来源:《the art of computer programming vol 4》算法的思路:1、 将n位整数记作a1a2…an ,初始化为0…00。2、 令 j = n, 计算 aj = aj + 1; 当 aj 等于 m-1时,向高位进1,此位原创 2011-10-07 12:37:18 · 1672 阅读 · 0 评论 -
奇偶校验算法
算法来源:互联网功能描述:: 大家都知道,信息是以比特流的方式传输的,类似01000001。在传输过程中,有可能会发生错误,比如,我们存储了01000001,但是取出来却是01000000,即低位由0变成了1。为了检测到这种错误,我们可以通过“奇偶校验”来实现。假如原创 2011-10-10 10:51:00 · 21812 阅读 · 3 评论 -
《算法导论》课后习题 9.1-1
1. 原题Show that the second smallest of n elements can be found with n + lg n − 2comparisons in the worst case. (Hint: Also find the smallest element.)2. 思路2.1 利用最小堆1)首先建立一个最小堆,需要 O(N)时间原创 2012-10-16 17:59:47 · 1021 阅读 · 0 评论