繁体   English   中英

如何对随机数数组进行排序

[英]How to sort an array of random numbers

我需要创建一个大小为 500 的数组,数据是随机分布的,我真的很困惑如何对这个数组进行排序。 有人可以帮我吗?

随机代码:

import java.util.Random;

public class SortTest {

   public static void main(String[] args) { 

      // create an instance of Random class for random number generation 
      Random random = new Random (1L);

      // begin new scope
      {
      // create an int array of 500 elements
      int[] dataArray = new int[500];

      // populate the array with randomly generated values
      for (int index = 0; index < 500; index++)
        dataArray[index] = random.nextInt();

      // end scope
      }

  }
}

我需要使用 Arrays.sort(dataArray) 吗? 还是 Arrays.sort(dataArray, Collections.reverseOrder())? 但是我听有人说那些不适合初级班。

请帮忙!!! 谢谢!!

这应该是我的步骤:

  1. 使用 Random 类的 nextInt() 方法创建一个包含 500 个元素的整数数组
  2. 制作此数组的副本并将其用作排序方法的参数(数组通过引用传递)。
  3. 测量使用冒泡、选择、插入、快速排序和归并排序对 500 个元素的数组进行排序的执行时间
  4. 使用 Random 类的 nextInt() 方法创建一个包含 5000000 个元素的整数数组。
  5. 制作此数组的副本并将其用作排序方法的参数(数组通过引用传递)。
  6. 测量使用冒泡、选择、插入、快速排序和归并排序对 5000000 个元素的数组进行排序的执行时间。
  7. 测量使用冒泡、选择、插入、快速排序和归并排序对已排序(按递增顺序)500 个元素的数组进行排序的执行时间。
  8. 测量使用冒泡、选择、插入、快速排序和归并排序对已经反向排序(按降序)500 个元素的数组进行排序的执行时间。
  9. 测量使用冒泡、选择、插入、快速排序和归并排序对已排序(按递增顺序)5000000 个元素的数组进行排序的执行时间。
  10. 测量使用冒泡、选择、插入、快速排序和归并排序对已经反向排序(按降序)5000000 个元素的数组进行排序的执行时间。
  11. 将您的结果制成表格并评论六种排序算法对输入数据分布的敏感性

我对 strp 7 和 8 感到困惑,如何对上面分布的数组进行排序。 我应该在哪里添加它? 我使用了 Arrays.sort() 但打印出来的结果不是按升序排列的。

如果您正在询问获取随机数排序数组的好方法,这里有一个使用 Java 8 流的简单解决方案:

int[] randoms = Random.ints(500).sorted().toArray();

要么使用此方法public static void sort(int[]); 来自java.util.Arrays

Arrays.sort(dataArray); 或者

更改您的数组声明

int[] dataArray = new int[500];

ArrayList<Integer> dataArray = new ArrayList<Integer>();

然后你可以应用Collection类中的sort()方法来对你的数组进行排序。 因为Integer是一个Comparable类型的类。

public final class java.lang.Integer extends java.lang.Number implements Comparable<java.lang.Integer>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM