0

1000、10000、1000000、または 10000000 個の個々のデータ項目を検索アルゴリズムに追加するにはどうすればよいですか?

コード:

public class BinarySearch {

int binarySearch(int[] array, int value, int left, int right) {
      if (left > right)
            return -1;
      int middle = (left + right) / 2;
      if (array[middle] == value)
            return middle;
      else if (array[middle] > value)
            return binarySearch(array, value, left, middle - 1);
      else
            return binarySearch(array, value, middle + 1, right);           
}

}

4

2 に答える 2

1

したがって、私が正しく理解している場合は、配列内のさまざまな量の整数でアルゴリズムを試してください。

public int[] makeArray(int size, int minNum, int maxNum) {
    int [] arr = new int[size];
    Random r = new Random();       

    for (int i = 0; i < size; i++) {
        arr[i] = minNum + r.nextInt(maxNum);
    }

    Arrays.sort(arr);

    return arr;
}

したがって、100 から 500 の範囲の 10000 個の番号が必要な場合は、次のように呼び出します。

int[] arr = makeArray(10000, 100, 500);

実際、次のような検索を開始するためのヘルパー メソッドを作成することをお勧めします。

public int binarySearch(int[] array, int value) {
    return binarySearch(array, value, 0, array.length - 1);
}

arr次に、値 (例: 5)を調べることができます。

int i = binarySearch(arr, 5);
于 2013-04-11T17:14:50.797 に答える