首页 文章

你如何制作一个10000的数组,只有1-1000的值?

提问于
浏览
0

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

下面我创建了三个数组 .

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

第二个填充10000的数组,整数从1-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

    您可以使用已有的代码非常接近,只需为第二个和第三个列表添加modulo operator即可 . 添加元素"mod 1000"可确保列表中没有大于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
        }
    }
    

    然后,您可以将此列表复制到第三个列表中,并为您的第三个案例“稍微取消”它!


    当然,取决于你有权访问的内容(这看起来像是一个赋值,所以也许你没有随时可用的排序),你可能更容易创建第一个列表,然后复制它和为第二种情况排序 .

相关问题