生成前N个整数的一个随机置换java实现
来源:互联网 发布:VC从TXT中读取二维数组 编辑:程序博客网 时间:2024/05/29 04:39
这个问题数据结构与算法分析java语言描述版,第二章的2.8课后习题的。下面我的三种不同的实现:
随机数生成函数
public static int randInt(int i, int j) { int temp = (int) (Math.random() * j + i); return temp; }
1.时间复杂度为O(n^2)
public static int[] randArray(int[] arr) { for (int i = 0; i < arr.length; i++) { arr[i] = randInt(0, arr.length); for (int k = 0; k < i; k++) { if (arr[k] == arr[i]) { arr[i] = randInt(0, arr.length); k = -1; } } } return arr; }
2.时间复杂度为O(n)
/** * 用一个中间数组,来表示随机数是否已经使用 * */ public static int[] randArray1(int[] arr) { int[] temp = new int[arr.length]; for (int i = 0; i < arr.length; i++) { arr[i] = randInt(0, arr.length); while (temp[arr[i]] == 1) {//重复赋值, arr[i] = randInt(0, arr.length); } temp[arr[i]] = 1; } return arr; }
3.时间复杂度O(n)
//思想是数组已经赋值,通过随机函数交换里面数的位置 public static int[] randArray2(int[] arr) { for(int i = 0 ; i < arr.length; i++){ arr[i] = i ; } for(int i = 1 ; i < arr.length ; i++){ swap(arr,i,randInt(0, i)); } return arr; }
阅读全文
0 0
- 生成前N个整数的一个随机置换java实现
- 生成前N个自然数的一个随机置换
- 前N个自然数的随机置换
- 随机生成前N个不重复的整数
- 生成前N个自然数随机置换的3个程序
- java随机生成n个不相同的整数
- 随机生成n个不同的整数
- 随机生成n个整数
- 关于随机生成N个不同整数的问题
- 2.2: 随机生成一个n bit位的长整数。
- 2.2 随机生成一个n bit位的整数
- 随机生成一个n bit位的长整数
- 随机生成一个n bit位的长整数
- 随机生成一个n bit位的长整数
- 2.2: 随机生成一个n bit位的长整数
- 随机生成一个n bit位的长整数
- 随机生成一个n bit位的长整数
- 随机生成一个n bit位的长整数。
- 咪咕天气总结
- Android定义亮屏、灭屏、锁屏、退出应用监听器
- Maven 项目打包成可执行Jar文件
- iptables CLUSTERIP构建独特的负载均衡集群
- 一些编程相关的地址
- 生成前N个整数的一个随机置换java实现
- AX 2012 MultiSelectionHelper (取多条记录)
- input记录
- pkcs#5和pkcs#7填充的区别
- Android
- strut2中Action三种实现方式及参数传递
- 基于.NET平台常用的框架整理
- js的装载和执行顺序
- 小程序改变性别的js详解直接上图