java 10个随机数排序_java随机数排序的问题
java随机数排序的问题
关注:68 答案:4 mip版
解决时间 2021-01-27 15:23
提问者侢遇噹姩揂
2021-01-27 08:24
public class RN {
public static void main(String[] args) {
System.out.println("初始的随机数是:");
int i = 0;
int j = 0;
int[] num = new int[10];
for(i = 0;i < num.length;i++) {
num[i] = (int) (Math.random()*1000);
System.out.println("num[" + i +"]" + num[i]);
}
System.out.println("排序后的随机数是:");
for(i = 0;i < num.length;i++) {
for(j = 0;j < num.length;j++) {
if(num[i] < num[j]) {
int m = num[j];
num[j] = num[i];
num[i] = m;
}
}
}
for(i = 0;i < num.length;i++) {
System.out.println("num[" + i +"]" + num[i]);
}
}
}
我想要结果如下:
初始的随机数是:
num[0]4
num[1]982
num[2]344
num[3]93
num[4]77
num[5]419
num[6]839
num[7]414
num[8]452
num[9]453
排序后的随机数是:
num[0]4
num[4]77
num[3]93
num[2]344
num[7]414
num[5]419
num[8]452
num[9]453
num[6]839
num[1]982
该怎么修改?
正解:
public class RN {
public static void main(String[] args) {
System.out.println("初始的随机数是:");
int i = 0;
int j = 0;
int a = 0;
int[] num = new int[10];
int[] num2 = new int[10];
for(i = 0;i < num.length;i++) {
num[i] = (int) (Math.random()*1000);
num2[i] = i;
System.out.println("num[" + i +"]" + num[i]);
}
System.out.println("排序后的随机数是:");
for(i = 0;i < num.length;i++) {
for(j = 0;j < num.length;j++) {
if(num[i] < num[j]) {
int m = num[j];
num[j] = num[i];
num[i] = m;
int n = num2[j];
num2[j] = num2[i];
num2[i] = n;
}
}
}
for(a = 0;a < num.length;a++) {
System.out.println("num[" + num2[a] +"]" + num[a]);
}
}
}
谢谢大家了!!!!
最佳答案
二级知识专家喜欢就甘愿
2021-01-27 09:47
已经实现了,不过是一个降序的。把双重循环中的 if(num[i] < num[j])
改一下就行,把就是升序的了。
全部回答
1楼我有我风格
2021-01-27 12:17
呵呵,你知道那个 random(47)是啥意思吗?这个是种子。
相同的种子会产生相同顺序的随机数,你的47这个种子,每次产生的第一个随机数,永远是 2,不会是别的。
所以,java的是伪随机数哦。
不过这也有一个好处,你连续生成10个随机数,
在运行一次,还是那10个数哦,顺序是完全相同的。
所以一般我们会使用 ramdon() 不带参数,这样就会使用
random(++seeduniquifier + system.nanotime());
也就是系统的纳秒作为种子,这个重复的可能性就及其小了。
总结:相同的种子,产生相同的随机数序列。
希望你明白了。
2楼可爱暴击
2021-01-27 11:12
public class RN {
public static void main(String[] args) {
System.out.println("初始的随机数是:");
int i = 0;
int j = 0;
int[] num = new int[10];
for(i = 0;i < num.length;i++) {
num[i] = (int) (Math.random()*1000);
System.out.println("num[" + i +"]" + num[i]);
}
System.out.println("排序后的随机数是:");
for(i = 0;i < num.length;i++) {
for(j = 0;j < i;j++) {//主要是这里,不是j < num.length,应该是j < i
if(num[i] < num[j]) {
int m = num[j];
num[j] = num[i];
num[i] = m;
}
}
}
for(i = 0;i < num.length;i++) {
System.out.println("num[" + i +"]" + num[i]);
}
}
}
3楼時光叫我忘了他
2021-01-27 10:27
你是循环遍历出数组的,那坑定是num[1].......num[n]啊,请使用数组的随机遍历方式
在开始遍历数组时加入 一下代码。
import java.util.Random;
import java.util.Vector;
public class test{
public static void main(String[] args) {
String[] strs = { "a", "b", "c", "d"};
int strsLength = strs.length;
Vectorv = new Vector();
Random r = new Random();
boolean flag = true;
while (flag) {
int i = r.nextInt(strsLength);
if (!v.contains(i))
v.add(i);
if (v.size() == strsLength)
flag = false;
}
for (int i = 0; i < strsLength; i++) {
System.out.println(strs[v.get(i)]);
}
}
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看
java 10个随机数排序_java随机数排序的问题相关推荐
- java怎么对作者名排序_Java 对象排序详解
很难想象有Java开发人员不曾使用过Collection框架.在Collection框架中,主要使用的类是来自List接口中的ArrayList,以及来自Set接口的HashSet.TreeSet,我 ...
- java 8 排序_Java 八大排序实现
参考链接 本文只给出算法的Java实现版本,具体原理参考:八大排序算法. 公用代码 下面的swap()函数,是排序算法中经常用到的,单独贴出来. public void swap(int[] a, i ...
- java map按照key排序_java Map排序(按key和按value)
1.按照key排序 对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲. 这种方案,使用h ...
- java随机数 时间_Java 随机数
在 Java 编程时,经常需要用到随机数,如生成验证码.密码加密.游戏道具随机掉落等,那么在 Java 语言中如何生成随机数? Java 语言中有两种方法可能生成随机数 方法一:Math.random ...
- java 性能 排序_Java常用排序算法及性能测试集合
package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...
- java 汉字拼音排序_Java汉字排序(2)按拼音排序
1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...
- java 随机生成英文名_java随机数Reandom(简单介绍)
简单介绍 Java中存在着两种Random函数 一.java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0, ...
- java随机数 范围_java随机数产生的范围该怎么定义?
随机数的范围有时是需要控制的,不然会很浪费资源,这次的题目小编就来带大家看看如何在指定范围内获取随机数. 例1:随机生成 1~100 之间的随机数,取值包含边界值 1 和 100. 如生成范围是[m, ...
- java代码实现count排序_java计数排序
介绍: 该算法不基于比较进行排序,时间复杂度O(n + k),很难说与基于比较的排序算法(时间复杂度下限O(nlogn))哪个更优,具体要比较k与nlogn的大小: 实现思路: 1.以数组origin ...
最新文章
- 简单的路由协议分析和配置
- 《直播疑难杂症排查系列》之一 :播放失败
- A comparative study of various methods of bearing faults diagnosis using the CWRU data.-学习笔记
- workman php教程_workerman搭建websocket入门教程,简单实用
- 高效的企业测试-工作流和代码质量(4/6)
- 1.4编程基础之逻辑表达式与条件分支 17 判断闰年
- iOS学习笔记(1)— UIView 渲染和内容管理
- Vuex mutations的详细解读
- Activiti工作流Day18-Crystalball流程仿真
- qt TCP 网络编程
- 刚培训的java程序员怎么找工作,快来看鸭~
- ALGORITHMIC COMPOSITION AS A MODEL OF CREATIVITY
- 德州理工大学计算机科学专业录取,美国留学:德州理工大学录取要求
- 怎么压缩图片大小?建议收藏这些方法
- Google VP8 Code 首次深入技术分析 1
- oracle 求时间均值
- 《ZigBee实战演练》
- 图数据库(八):Neo4j中Cypher语言with关键字
- 国内外安全网站网址大集合 - 转帖 - 很多已经失效了
- js图片压缩插件compressorjs