如何将 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);
}
}
最佳答案
所以,如果我理解正确的话,您想在数组中使用不同数量的整数来尝试您的算法。
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;
}
因此,如果您想要 10000 个 100 到 500 之间的号码,那么您可以调用:
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);
关于java - 将数据值添加到搜索算法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15954815/