数据结构与算法分析Java版练习2.8_数据结构与算法例2-8-程序员宅基地

技术标签: 算法  数据结构与算法分析Java版  数据结构  

package ch02;

import java.util.Arrays;
import java.util.Random;

/**
 * 练习2.8 假设需要生成前N个整数的一个随机转换。例如{4,3,1,5,2}和{3,1,4,2,5}就是合法的转换,但
 * {5,4,1,2,1}则不是,因为数1出现两次而数3却没有。这个程序常常用于模拟一些算法。我们假设存在一个随机数
 * 生成器r,它有方法randInt(i, j),它以相同的概率生成i和j之间的整数。下面是三个算法:
 * 1. 如下填入从a[0]到a[n-1]的数组a;为了填入a[i],生成随机数直到它不同于已经生成的a[0],a[1],...,a[i-1]时
 *    再将其填入a[i]。
 * 2. 同算法(1),但是要保存一个附加的数组,称之为used数组。当一个随机数ran最初被放入数组a的时候,置used[ran]=true。
 * 	    这就是说,当用一个随机数填入a[i]时,可以用一步来测试是否该随机数已经被使用,而不是像第一个算法那样(可能)用
 * 	  i步测试。
 * 3. 填写该数组使得a[i] = i + 1。然后
 *    for (i = 1; i < n; i++)
 *       swapReference(a[i], a[randInt(0, i)]);
 * a. 证明这三个算法都生成合法的置换,并且所有的置换都是可能的。
 *    (证明略。)
 * b. 对每一个算法给出你能够得到的尽可能准确的期望运行时间分析(用大O)。
 * c. 分别写出程序来执行每个算法10次,得出一个好的平均值。对N=250, 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangyingli/article/details/48311945

智能推荐

小米商城项目总结_小米商城项目总结心得-程序员宅基地

文章浏览阅读7.2k次。脚本中判断是否相等不能用equals,没有这个方法,只能用== 数据库工具类,只需要加载一次就够了,所以我们采用静态代码块来初始化该方法,作为工具类使用 public static QueryRunner qr = null;//因为是在不同包下的,所以要用public才可以调用 Ajax往Servlet发送数据的时候Servlet必须response一个数据,不然会报parsee..._小米商城项目总结心得

Windows Phone App测试良好但提交后失败的可能性-程序员宅基地

文章浏览阅读1k次。调用了诸如ScheduledActionService.LaunchForTest 之类只有在测试环境才能用的API。在提交后可能会闪退。写入 InstalledLocation 文件夹。安装文件夹在测试环境是可读写的,但是提交后就只读不可写了,而只能写入独立存储。把ProductId Hard Code了。Product Id 在提交后会变化。但是再次提交后不会变化,如果非要省事Hard Cod

Matlab中double,im2double,mat2gray区别-程序员宅基地

文章浏览阅读459次。转载:http://blog.sina.com.cn/s/blog_6c41e2f30101559d.htm ****************假设某图像数据A(uint8格式)**********************A = 235 200 89 20&gt;&gt; double(A) %返回与原矩阵数值相同但类型为double的矩阵...

ROSBug:Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS] rosrun will locate PACKAGE-程序员宅基地

文章浏览阅读1.2w次,点赞20次,收藏28次。输入~$ rosrun turtlesim错误Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS] rosrun will locate PACKAGE and try to find an executable named EXECUTABLE in the PACKAGE tree. If it finds it, it will run it with ARGS.解决方法在输入~$ rosrun t_usage: rosrun [--prefix cmd] [--debug] package executable [args] rosrun will

周期方波信号的级数分解_方波信号分解-程序员宅基地

文章浏览阅读1.2w次,点赞9次,收藏54次。根据傅里叶级数的定义我们知道:对于任意一个周期为的周期信号,都可以求出它在三角函数集中各函数中的分量,从而可将在区间内表示为三角函数集中各函数的加权和。即:其中:借助Matlab编写M文件,以方波信号为例,选取不同的级数项数进行合成,观察与原方波的逼近情况。源码如下:%该m文件用于绘制方波信号及其傅立叶级数谐波叠加clc;clear;close all;syms x; %定义符号变量x,用..._方波信号分解

docker kkfile-程序员宅基地

文章浏览阅读110次。映射了file文件夹和application的配置文件。kkfile 文件预览的docker命令。_docker kkfile

随便推点

To install them, you can run: npm install --save core-js/modules/es.array.push.js-程序员宅基地

文章浏览阅读5k次,点赞5次,收藏8次。To install them, you can run: npm install --save core-js/modules/es.array.push.js core-js/modules/es.error.cause.js core-js/modules/es.object.proto.js core-js/modules/es.re

wpf 界面切换-程序员宅基地

文章浏览阅读1.3w次,点赞3次,收藏30次。界面切换和窗口跳转是所有桌面程序都需要的。 wpf里面也有很多方法来做到界面切换,简单常用的有TabControl和UserControl。TabControl优点是简单,继续拖控件。 缺点就是全部代码会堆到一起。代码&lt;TabControl HorizontalAlignment="Left" Height="200" Margin="10,10,0,0" Vert...

win10 vmware 磁盘映射 位置不可用_vmware映射虚拟磁盘 不可用-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏22次。原文链接:https://www.itsk.com/thread-395102-1-1.html出现Z:\不可用。如果该位置位于这台电脑上,请确保设备或驱动器已连接,或者光盘已插入,然后重试。如果该位置位于网络上,请确保你已连接到网络或Internet,然后重试。如果仍然找不到该位置,则它可能已移动或删除。解决办法:主要是因为新版WIN10的资源管理不是以管理员身份运行的,这时候只需要打开任务管理器,结束Windows资源管理器的进程,再点左上角文件,运行新任务,打开C:\Windows\exp._vmware映射虚拟磁盘 不可用

闲鱼亿级商品结构化背后的思考和演进-程序员宅基地

文章浏览阅读1.5k次,点赞5次,收藏5次。背景闲鱼是一个典型的C2C场景的闲置交易平台,每个在闲鱼的用户都能享受到自由交易的乐趣,只要简单的输入商品名,商品价格,库存等信息就能完成一个商品的发布。充分的自由是闲鱼..._闲鱼服务端架构演进的心得

VirtualBox使用大全_virtualbox 下的vi-程序员宅基地

文章浏览阅读543次。=================复制虚拟机网卡问题=============== 每次复制的虚拟机的时候如果不选择复制的虚拟机网卡地址跟源的一样,这里点击上就会重新分配网卡mac地址。 重启后的虚拟机的网卡并不能用,这里需要设置。 这里是重新获得的mac地址, vi /etc/sysconfig/network-scripts/ifcfg-eth0将网卡的mac地址手动改成修改后的,_virtualbox 下的vi

国产化复旦微电子 FMQL45T900 FPGA开发板( 替代Xilinx ZYNQ ARM+FPGA 7045开发板)-程序员宅基地

文章浏览阅读2.5w次,点赞10次,收藏97次。-FM4550国产化开发板功能接口-- 系统框图-01- 产品参数-1.主要参数系统1: FPGA型号:FMQL45T900 PS内核:四核ARM Cortex-A7,主频800MHz PS端内存:1GB DDR3,数据速率1066Mbps,32bit PL端内存:1GB DDR3,数据速率1600Mbps,32bit GTX收发器:16X 速度等级:对标进口-2 ..._fmql45t900

推荐文章

热门文章

相关标签