メソッド findPosition を呼び出すときにエラーが発生します。私がこのプログラムでやろうとしているのは、アルゴリズムが平均して 1000 回以上実行される時間を測定することです。次に、メソッドを呼び出して、配列内の値の位置 (見つかった場合) を見つけたいと思います。渡される引数がメソッドと一致しないというコンパイラ エラーが発生します。具体的には、値を配列で渡したいのに、2 番目の引数が int として取得されています。私は自分のエラーを見つけることができず、配列を扱うのは初めてなので、私の間違いがどこにあるのか教えていただければ、事前に感謝します.
import java.util.*;
public class AlgorithmRuntime
{
static int num = 0;
static long total = 0;
static long average = 0;
public static void main (String[] args)
{
boolean isValueInArray;
int searchValue;
do {
// 1. Setup
int size = 1000;
long sum = 0;
int[] iArray = new int[size];
Random rand = new Random(System.currentTimeMillis());
for (int i = 0; i < size; i++)
iArray[i] = rand.nextInt();
searchValue = rand.nextInt(1000) + 1;
// 2. Start time
long start = System.nanoTime();
// 3. Execute algorithm
for (int j = 0; j < size; j++)
{
if (iArray[j] == searchValue)
{
isValueInArray = true;
}
if (isValueInArray == true)
findPosition(searchValue, iArray[isValueInArray]);
}
// 4. Stop time
long stop = System.nanoTime();
long timeElapsed = stop - start;
total = total + timeElapsed;
num++;
} while (num < 1000);
average = total / 1000;
System.out.println("The algorithm took " + average
+ " nanoseconds on average to complete.");
}
}
public int findPosition(int valueOfInt, int[] array)
{
for (int i = 0; i < array.length; i++)
if (array[i] == valueOfInt)
return i;
return -1;
}