如何使用仅包含1-1000的值来生成10000的数组?

时间:2014-04-01 21:24:10

标签: java arrays arraylist

“每个函数都应该使用数组输入运行,大小为100,1000和10000;其中每个都是 任何数组中的值应为1 - 1000(包括1和1000)的整数。每个排序功能应为
在以下类型的数组上运行:随机数,排序列表和几乎排序的列表“

下面我创建了三个数组。

第一个用1-1000的整数随机填充10000个数组。

使用1-10000的整数填充10000的数组。 Third Shuffles数组10000,包括1-10000的整数。

我的问题是我无法获得10000的第2和第3个数组仅包含1-1000的值。 甚至可能吗?我是新手。任何帮助将不胜感激!!

int [] inputTenThousand = new int[10000];               // Random 10000
    for (int a = 0; a < inputTenThousand.length; a++) {
       inputTenThousand [a] = (int) (Math.random () * 1000);
    }



int [] inputTenThousand2 = new int[10000]               // Sorted 10000
    for (int a = 0; a < inputTenThousand2.length; a++) {
       inputTenThousand2[a] = a + 1;
    }




List<Integer> TenThousandList = new ArrayList<Integer>();
    for (int i = 1; i < 10001; i++) {
        TenThousandList.add(i);
    }
     Collections.shuffle(TenThousandList);
int[] inputTenThousand3 = new int[TenThousandList.size()];  // Almost Sorted 10000
    for (int i = 0; i < TenThousandList.size(); i++) {
       inputTenThousand3[i] = TenThousandList.get(i);
    }
    for (int i = 0; i < inputTenThousand3.length; i++) {            
       inputTenThousand3[i] = TenThousandList.get(i);   
    }

1 个答案:

答案 0 :(得分:0)

只需为第二个和第三个列表添加modulo operator,即可使用您已有的代码非常接近。添加元素&#34; mod 1000&#34;确保列表中没有大于1000的值。(您必须在结果值中添加一个值才能将范围从0-999更改为1-1000)。

inputTenThousand2[a] = (a % 1000) + 1;

当然,这并不保留您最初创建的排序顺序,但是一旦生成这些数组,您就会注意到一个非常清晰的模式。您的阵列现在只是数字1-1000,重复十次。这使得描绘阵列看起来很简单:

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 ...
 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000] 

因此,我们可以首先构建那个很好的排序列表:

int [] inputTenThousand2 = new int[10000];     // 10000 sorted integers
for (int v = 0; v < 1000; v++) { // loop from 0 to 999
    for (int i = 0; i < 10; i++) { 
        inputTenThousand2[(10*v) + i] = v + 1; // Set ten elements per value of the outer loop
    }
}

然后,您可以将此列表复制到第三个列表中,然后稍微取消&#34;这是你的第三种情况!


当然,取决于您可以访问的内容(这看起来像是一项任务,所以也许您没有随时可用的排序),将第一个列表创建为第一个列表可能更容易你已经拥有它,然后复制它并为第二种情况排序。