随机数、序列数生成、数组排序
2015-09-23 15:43
369 查看
// 随机数 public static final Random random = new Random(); /** 生成[0, n)范围的随机整数 */ public static int random(int n) { return random.nextInt(n); } /** 生成[lower, upper]范围的随机整数 */ public static int random(int lower, int upper) { if (lower > upper) return random(upper, lower); else return random.nextInt(upper - lower + 1) + lower; }
/** 序列数生成算法,生成1到n的随机序列数组,每个数值出现且仅出现一次 */ public static int[] getSerial(int n) { Random Rnd = new Random(); int[] tmp = new int ; int[] num1 = new int ; for (int i0 = 1; i0 <= n; i0++) num1[i0 - 1] = i0; for (int i = num1.length; i > 0; i--) { Rnd.setSeed(Rnd.nextLong()); int index = Rnd.nextInt(i); // 随机选中一个数 tmp[i - 1] = num1[index]; // 剔除选中的数值 int[] num2 = new int[i - 1]; for (int j = 0; j < i; j++) if (j < index) num2[j] = num1[j]; else if (j > index) num2[j - 1] = num1[j]; num1 = num2; } return tmp; }
/** 数组排序函数 */ public static int[] sort(int[] data) { int tmp; for (int i = 0; i < data.length - 1; i++) { for (int j = i + 1; j < data.length; j++) if (data[i] > data[j]) { tmp = data[i]; data[i] = data[j]; data[j] = tmp; } } return data.clone(); }
相关文章推荐
- 不进化,则消亡
- Java学习笔记【输入输入知识要点】
- android工具eclipse如何添加源码
- 字符字节转换器,不同编码下字符字节互转
- 算法--设计一个有getMin功能的栈
- [算法]基于分区最近点算法的二维平面
- 十六进制转化成汉字
- ormapping框架和jdbc的比较
- 时间管理从用好今目标开始
- spring oauth2.0入门(实战)
- sql sever 2008修改数据类型
- C语言高速入口系列(七)
- Struts框架核心工作流程与原理
- GRE
- Android开发 MeasureSpec介绍
- 【TCO 2013 3A】TrichyInequality
- Robot Framework测试框架(学习)
- 数据结构面试题1.2.9-查找最小的K个元素-使用最大堆
- warning incompatible implicit declaration of built-in function 'printf'
- Android系统jar环境变量SYSTEMSERVERCLASSPATH