簡體   English   中英

您將如何制作僅包含1-1000(含)值的10000數組?

[英]How would you make an array of 10000 with only values of 1-1000 inclusive?

“每個功能都應使用大小分別為100、1000和10000的數組輸入運行;其中每個
任何數組中的值都應為1到1000(含)之間的整數。 每個排序功能都應該
在以下類型的數組上運行:隨機數,排序列表和幾乎排序的列表”

下面,我創建了三個數組。

第一個將10000的Array隨機填充為1-1000的整數。

Second用10000至10000的整數填充10000的數組。 10000的第三個Shuffle數組,其中包含1-10000的整數。

我的問題是我不能讓我的10000的第二和第三數組僅包含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);   
    }

您只需使用第二個和第三個列表的模運算符 ,即可使用已有的代碼非常接近。 添加元素“ mod 1000”可確保列表中沒有大於1000的值。(必須在結果值中加1,以將范圍從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
    }
}

然后,您可以將此列表復制到第三列表中,並針對您的第三種情況“稍微取消排序”!


當然,根據您可以訪問的內容(這看起來像是一項作業,因此可能沒有隨時可用的排序方法),創建第一個列表就更容易了,然后將其復制並對第二種情況進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM