2016-11-12 16 views
0

以下のコードでは、配列を保持している2つの配列を作成しました。配列の配列にアクセスするjava

最初の配列testPayloadArrayは、配列全体をtestPayloadArrayのi位置内に渡すことが想定されています。

runTimeArrayは、アレイのI postion内配列を渡すと、その配列内のそれはで使用されている方法でdeterminded実行時の値を移入することになっている。

私の実行はかなり間違っている、私は認めても、私は前進する方法がわかりません。

私は[i] [j]がこれを行う最も良い方法だと考えました。ここで、iは第1の配列内の位置に対応し、jは第2の配列内の位置に対応する。ですから、runTimeArrayの2番目の配列に3番目のポピュレーションを挿入したければ、コードはこのようになりますが、正しいですか?

runTimeArray[1][2] = endTime - StartTime; 

以下のコード:

ublic class Main { 

public static void main(String[] args) { 
    int arrayLength = Integer.parseInt(args[0]); 
    int[] sortedDecending = new int[arrayLength]; 
    int j = 0; 
    int k = arrayLength; 
    for(int i = arrayLength; i > 0; i--) { 
     sortedDecending[j] = k; 
     j++; 
     k--; 
    } 
    j = 0; 
    int[] sameNum = new int[arrayLength]; 
    for(int i = 0; i < arrayLength; i++){ 
     sameNum[i] = k; 
    } 
    int[] sortedAssending = new int[arrayLength]; 
    for(int i = 0; i < arrayLength; i++){ 
     sortedAssending[i] = i; 
    } 

    int[] randomNum = new int[arrayLength]; 
    for(int i = 0; i < arrayLength; i++){ 
     Random rand = new Random(); 
     randomNum[i] = rand.nextInt(400); 
    } 
    TestInterface test = new TestInterface(sortedDecending, sameNum, sortedAssending, randomNum); 
    test.runTest(); 

} 

public void runTest(){ 
    int[][] testPayloadArray ={this.sortedDecending, this.sameNum, this.sortedAssending, this.randomNum}; 
    long[][] runTimeArray = {bubbleSortRunTime, selectionSortRunTime, insertionSortRunTime, 
    quicksortRunTime, quicksort2RunTime, mergesortRunTime, mergesort1RunTime, heapsortRunTime}; 

    for(int i = 0; i<4; i++){ 
     runBubbleSort(i, runTimeArray[i], testPayloadArray[i]); 
     runSelectionSort(i, runTimeArray[i], testPayloadArray[i]); 
     runInsertionSort(i, runTimeArray[i], testPayloadArray[i]); 
     runQuickSort(i,runTimeArray[i], testPayloadArray[i]); 
     runQuickSort2(i, runTimeArray[i], testPayloadArray[i]); 
     runMergeSort(i, runTimeArray[i], testPayloadArray[i]); 
     runMergeSort1(i,runTimeArray[i], testPayloadArray[i]); 
     runHeapSort(i, runTimeArray[i], testPayloadArray[i]); 
    } 
    testReport(); 
+0

はい 'runTimeArray [1] [2]'第2アレイ内の3番目の位置を表すようにすることができました。 –

答えて

0

はいrunTimeArray[1][2]第2アレイ内の3番目の位置を表します。

また、あなたのsortedDescending配列の場合、あなたはおそらくあなたがちょうど自分のrunTimeArrayで実行時間を保存したい場合は、各ソートメソッドのシグネチャを変更することができ、また、ループ

for(int i = 0; i < arrayLength; i++){ 
    sortedDescending[i] = arraylength - i; 
} 

を以下していることができます時間を返してループに直接格納してください。

ので、例えば、あなたのループは

for (int i = 0; i < 4; i++) { 
    runTimeArray[i][0] = runBubbleSort(testPayloadArray[i]); 
    runTimeArray[i][1] = runSelectionSort(testPayloadArray[i]); 
} 

ようにすることができ、方法は

private long runSelectionSort(int[] ints) { 

    return endTime - StartTime;; 
} 

private long runBubbleSort(int[] ints) { 
    return endTime - StartTime;; 
} 
関連する問題