在Java中测试二进制搜索的效率

时间:2017-10-21 02:09:39

标签: java arrays algorithm performance binary-search

我正在尝试测试java中大型排序数组的二进制搜索的时间效率。

这是我正在使用的二进制搜索方法,它接收搜索键和数组。

p = p.astype(int)

我认为以编程方式创建数组可能会导致效率上升。因此,我试图将大型数组初始化为常量,并在程序中使用它。

我尝试了Array和ArrayList,如下所示。

public int binarySearch(int[] a, int k) {
    int l = 0;
    int r = a.length - 1;

    int m = 0;

    while (l <= r) {
        m = (l+r)/2;
        if (k == a[m]) {
            return m;
        }
        else if (k < a[m]) {
            r = m - 1;
        }
        else {
            l = m + 1;
        }
    }
    return -1;
}

我收到以下编译错误,因为数组太大。

public static int D10000[] = {0, 1, 2, 3, ..... 10000};

public static ArrayList<Integer> D10000 = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5, ...... 10000);

实现这一目标的最佳方法是什么?

0 个答案:

没有答案