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随机数排序的问题相关推荐

  1. java怎么对作者名排序_Java 对象排序详解

    很难想象有Java开发人员不曾使用过Collection框架.在Collection框架中,主要使用的类是来自List接口中的ArrayList,以及来自Set接口的HashSet.TreeSet,我 ...

  2. java 8 排序_Java 八大排序实现

    参考链接 本文只给出算法的Java实现版本,具体原理参考:八大排序算法. 公用代码 下面的swap()函数,是排序算法中经常用到的,单独贴出来. public void swap(int[] a, i ...

  3. java map按照key排序_java Map排序(按key和按value)

    1.按照key排序 对于java中Map的排序,有排序Map,比如TreeMap,对于这个Map,首先只能按照键排序,其次再put和remove的时候由于需要排序,性能上会有所牺牲. 这种方案,使用h ...

  4. java随机数 时间_Java 随机数

    在 Java 编程时,经常需要用到随机数,如生成验证码.密码加密.游戏道具随机掉落等,那么在 Java 语言中如何生成随机数? Java 语言中有两种方法可能生成随机数 方法一:Math.random ...

  5. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  6. java 汉字拼音排序_Java汉字排序(2)按拼音排序

    1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...

  7. java 随机生成英文名_java随机数Reandom(简单介绍)

    简单介绍 Java中存在着两种Random函数 一.java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0, ...

  8. java随机数 范围_java随机数产生的范围该怎么定义?

    随机数的范围有时是需要控制的,不然会很浪费资源,这次的题目小编就来带大家看看如何在指定范围内获取随机数. 例1:随机生成 1~100 之间的随机数,取值包含边界值 1 和 100. 如生成范围是[m, ...

  9. java代码实现count排序_java计数排序

    介绍: 该算法不基于比较进行排序,时间复杂度O(n + k),很难说与基于比较的排序算法(时间复杂度下限O(nlogn))哪个更优,具体要比较k与nlogn的大小: 实现思路: 1.以数组origin ...

最新文章

  1. 简单的路由协议分析和配置
  2. 《直播疑难杂症排查系列》之一 :播放失败
  3. A comparative study of various methods of bearing faults diagnosis using the CWRU data.-学习笔记
  4. workman php教程_workerman搭建websocket入门教程,简单实用
  5. 高效的企业测试-工作流和代码质量(4/6)
  6. 1.4编程基础之逻辑表达式与条件分支 17 判断闰年
  7. iOS学习笔记(1)— UIView 渲染和内容管理
  8. Vuex mutations的详细解读
  9. Activiti工作流Day18-Crystalball流程仿真
  10. qt TCP 网络编程
  11. 刚培训的java程序员怎么找工作,快来看鸭~
  12. ALGORITHMIC COMPOSITION AS A MODEL OF CREATIVITY
  13. 德州理工大学计算机科学专业录取,美国留学:德州理工大学录取要求
  14. 怎么压缩图片大小?建议收藏这些方法
  15. Google VP8 Code 首次深入技术分析 1
  16. oracle 求时间均值
  17. 《ZigBee实战演练》
  18. 图数据库(八):Neo4j中Cypher语言with关键字
  19. 国内外安全网站网址大集合 - 转帖 - 很多已经失效了
  20. js图片压缩插件compressorjs

热门文章

  1. 计算机论文写作提纲怎么写,计算机算法论文提纲 计算机算法论文大纲如何写...
  2. Linux 安装 adobe reader
  3. VBA自学应用(16)——Listview控件基本操作
  4. ASP.NET大型智能办公OA源码(带完整开发文档)
  5. 递归算法经典实例python-Python进阶:递归算法
  6. 双系统windows7重做系统后修复linux引导
  7. 咱中国人必须知道的国学常识
  8. 如何使用python生成词云并透明背景的词云?
  9. 中国区域经济统计年鉴(2000-2014)
  10. 学习笔记:FPGA之三人表决器