自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CLoudLord3的博客

导入的包可以在algs4.cs.princeton.edu上下载,来自于普林斯顿大学

  • 博客(11)
  • 收藏
  • 关注

原创 仅用加减实现的二分查找(Mihai Patrascu)(基于斐波那契数列实现)

任务描述:编写一个程序,给定一个含有N个不同int值的按照升序排列的数组,判断它是否含有给定的整数。只能使用加法和减法以及常数的额外内存空间。程序的运行时间在最坏的情况下应该和logN成正比。 教材提示:用斐波那契数代替2的幂(二分法)进行查找。用两个变量保存F(k)和F(k-1)并在[i,i+F(k)]之间查找。在每一步中,使用减法计算F(k-2),检查i+F(k-2)处的元素,并根据结果将搜

2017-03-23 22:56:38 756

原创 Josephus问题(基于数组的实现)

package Algorithm; import edu.princeton.cs.algs4.*; public class Josephus { public static void main(String[] args){ //完成准备工作 int N=StdIn.readInt(); int M=StdIn.readInt(); int[] people=new i

2017-03-16 17:41:03 1252

原创 将算术表达式由中序表达式转为后序表达式

哎,继续加油package Algorithm; import edu.princeton.cs.algs4.*; public class InfixToPostfix { public static boolean notLessthan(String a,String b){ if((a.equals("*")||a.equals("/"))&&(b.equals("*")||b.

2017-03-12 00:25:16 1354

原创 括号补全

编写一段程序,从标准输入得到一个缺少左括号的表达式并打印出补全括号之后的中序表达式。 例如,给定输入: 1 + 2 ) * 3 - 4 ) * 5 - 6 ) ) ) 你的程序应该输出: ( ( 1 + 2 ) * ( ( 3 - 4 ) * ( 5 - 6 ) ) ) package Algorithm; import edu.princeton.cs.algs4.*; pub

2017-03-11 17:53:05 1098

原创 括号配对

编写一个用例,从标准输入中读取一个文本流并使用栈判定其中的括号是否配对完整。例如,对于[ ( ) ] { } { [ ( ) ( ) ] ( ) } 程序应该打印true,对于[ ( ] ) 则打印false。 package Algorithm; import edu.princeton.cs.algs4.*; public class Parentheses { public stat

2017-03-11 17:00:28 373

转载 Java协变(共变)数组和类型擦除(covariant array & type erasure)

1、数组的协变性 数组的协变性(covariant)是指: 如果类Base是类Sub的基类,那么Base[]就是Sub[]的基类。 而泛型是不可变的(invariant),List不会是List的基类,更不会是它的子类。 数组的协变性可能会导致一些错误,比如下面的代码: public static void main(String[] args) { Object[] ar

2017-03-11 13:05:07 1476

原创 回环变位

问题描述:如果字符串s中的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被称为t的回环变位(circular rotation)。例如,ACTGACG就是TGACGAC的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串s和t是否互为回环变位。(提示:答案只需要一行用到indexOf()、length()和字符串连接的代码) 自己写的(

2017-03-04 21:07:02 444

原创 乱序检查

编写一个程序ShuffleTest,接收命令行M和N,将大小为M的数组打乱N次且在每次打乱之前都将数组重新初始化为a[i]=i。打印一个M×M的表格,对于所有的列j,行i表示的是i在打乱后落到j的位置的次数。数组中的所有元素的值都应该接近于N/M。 import edu.princeton.cs.algs4.*; public class fly { // 让数组内的每一个数与它所处位置之后

2017-02-23 20:14:35 713

原创 模拟掷骰子

以下代码能够计算每种两个骰子之和的准确概率分布: int SIDES = 6; double[] dist = new double[2 * SIDES + 1]; for (int i = 1; i <= SIDES; i++) for (int j = 1; j <= SIDES; j++) dist[i + j] += 1.0; for (int k = 2; k <= 2 * S

2017-02-23 12:49:34 3119

原创 随机连接

题目描述: 编写一段程序,从命令行接收一个整数N和double值p(0到1之间)作为参数,在一个圆上画出大小为0.01且间距相等的N个点,然后将每对点按照概率p用灰线连接。 代码实现: import edu.princeton.cs.algs4.*; public class fly { public static void paint(int N, double p) {

2017-02-21 21:32:50 585

原创 二项分布的递归实现

递归实现二项分布: public static double binomial(int N,int k,double p){ if(N==0&&k==0) return 1.0; if(N<0||k<0) return 0.0; return (1-p)*binomial(N-1,k,p)+p*binomial(N-1,k-1,p); } 原理: (N,k)p^k*(1-p)^(

2017-02-21 13:41:33 558

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除