摘要: 1.2.1编写一个Point2D的用例,从命令行接受一个整数N。在单位正方形中生成N个随机点,然后计算两点之间的最近距离。解:采用分治法。参考资料《算法导论》中文版第三版。代码实现过程中不太好处理的地方是:为了在Y'数组中只检查后续7个点而又不在递归中对Y数组进行排序的部分,这就需要确保从排序好的Y 阅读全文
posted @ 2018-10-25 11:33 修电脑的龙生 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 1.2.1编写一个Point2D的用例,从命令行接受一个整数N。在单位正方形中生成N个随机点,然后计算两点之间的最近距离。解:public class Test{ public static void main(String[] args) { int N=Integer.parseInt(args 阅读全文
posted @ 2018-10-25 11:32 修电脑的龙生 阅读(505) 评论(0) 推荐(1) 编辑
摘要: 1.1.39随机匹配。编写一个使用BinarySearch的程序,它从命令行接受一个整型参数T,并会分别针对N=10^3、10^4、10^5和10^6将以下实验运行T遍:生成两个大小为N的随机6位正整数数组并找出同时存在于两个数组中的整数的数量。打印一个表格,对于每个N,给出T次实验中该数量的平均值 阅读全文
posted @ 2018-10-25 11:30 修电脑的龙生 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.1.38二分查找与暴力查找。根据1.1.10.4节给出的暴力查找法编写一个程序BruteForceSearch,在你的计算机上比较它和BinarySearch处理largeW.txt和largeT.txt所需的时间。解:暴力查找约用时:2371秒二分查找约用时: 17秒//暴力查找代码impor 阅读全文
posted @ 2018-10-25 11:29 修电脑的龙生 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.1.37糟糕的打乱。假设在我们的乱序代码中你选择的是一个0到N-1而非i到N-1之间的随机整数。证明得到的结果并非均匀地分布在N!种可能性之间。用上一题中的测试检验这个版本。public class ShuffleTest{ public static void main(String[] ar 阅读全文
posted @ 2018-10-25 11:28 修电脑的龙生 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1.1.36乱序检查。通过实验检查表1.1.10中乱序代码是否能够产生预期的效果。编写一个程序ShuffleTest,接受命令行参数M和N,将大小为M的数组打乱N次且每次打乱之前都将数组重新初始化为a[i]=i.打印一个MXM的表格,对于所有的列j,行i表示的是i在打乱后落到j的位置的次数。数组中的 阅读全文
posted @ 2018-10-25 11:27 修电脑的龙生 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 1.1.35模拟投骰子。以下代码能够计算每两个骰子之和的准确概率分布:public class Test{ public static void main(String[] args) { int SIDES=6; double[] dist=new double[2*SIDES+1]; for ( 阅读全文
posted @ 2018-10-25 11:26 修电脑的龙生 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 1.1.34过滤。以下哪些任务需要(在数组中,比如)保存标准输入中所有值?哪些可以被实现为一个过滤器且仅使用固定数量的变量和因定大小的数组(和N无关)?在每个问题中,输入都来自于标准输入且含有N个0到1的实数。1)打印出最大和最小的数 一个变量max保存最大数、一个变量min保存最小数、一个变量cu 阅读全文
posted @ 2018-10-25 11:26 修电脑的龙生 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1.3.33矩阵库。编写一个Matri库并实现以下API:public class Matrix static double dot(double[] x,double[] y) 向量点乘 static double[][] mult(double[][] a,double[][] b) 矩阵和矩阵 阅读全文
posted @ 2018-10-25 11:25 修电脑的龙生 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1.1.32直方图。假设标准输入流中含有一系列的double值。编写一段程序,从命令行接受一个整数N和两个double值l和r。将(l,r)均分为N段并使用StrDraw画出输入流中的值落入每段的数量的直方图。解决这个问题的思路是:1.创建一个二维数组,其中第一维用来存储 (r-l)/N等分段的边界 阅读全文
posted @ 2018-10-25 11:24 修电脑的龙生 阅读(210) 评论(0) 推荐(0) 编辑