数组拷贝,二分法查找

Arrays.copyOfRange(int[] arr,int开始下标,int结束下标)//左闭右开
System.arraycopy(int[] source,int开始下标,int[] dest,int开始下标,int拷贝多少个)

这里是手动拷贝:
public static int[] copyOf(int[] original, int newLength) {
    int[] dest = new int[newLength];
    int length = original.length <= newLength ? original.length : newLength;
    for (int i = 0; i < length; i++) {
        dest[i] = original[i];
    }

    return dest;
}

mid作为分水岭,  不断地缩小范围
// 前提需要数组是有序的
public static int binarySearch(int[] a, int v) {
    int left = 0;
    int right = a.length;

    while (left < right) {
        int mid = (left + right) / 2;
        if (v == a[mid]) {
            return mid;
        } else if (v < a[mid]) {
            right = mid;
        } else {
            left = mid + 1;
        }
    }

    return -1;
}

public static int binarySearch3(int[] a, int v) {
    int left = 0;
    int right = a.length - 1;

    while (left <= right) {
        int mid = (left + right) / 2;
        if (v == a[mid]) {
            return mid;
        } else if (v < a[mid]) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }

    return -1;
}

新闻名称:数组拷贝,二分法查找
分享路径:http://hxwzsj.com/article/jhjdie.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 手机网站制作 响应式网站设计 成都网站设计 网站设计 成都网站建设公司 专业网站设计 成都营销网站制作 成都模版网站建设 成都网站设计 成都网站设计 网站设计公司 成都企业网站设计 成都网站设计 手机网站制作 重庆网站制作 成都网站建设公司 网站制作 网站制作公司 重庆外贸网站建设 成都网站制作 高端网站设计推广 温江网站设计