二分查找法

废话不多说,直接上代码

public static void main(String[] args) {

int srcArray[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101};

    System.out.println(binSearch(srcArray, 0, srcArray.length -1, 81));

}

// 二分查找递归实现

public static int binSearch(int srcArray[], int start, int end, int key) {

int mid = (end - start) /2 + start;

    if (srcArray[mid] == key) {

return mid;

    }

if (start >= end) {

return -1;

    }else if (key > srcArray[mid]) {

return binSearch(srcArray, mid +1, end, key);

    }else if (key < srcArray[mid]) {

return binSearch(srcArray, start, mid -1, key);

    }

return -1;

}

// 二分查找普通循环实现

public static int binSearch(int srcArray[], int key) {

int mid = srcArray.length /2;

    if (key == srcArray[mid]) {

return mid;

    }

int start =0;

    int end = srcArray.length -1;

    while (start <= end) {

mid = (end - start) /2 + start;

        if (key < srcArray[mid]) {

end = mid -1;

        }else if (key > srcArray[mid]) {

start = mid +1;

        }else {

return mid;

        }

}

return -1;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 6,662评论 0 3
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,884评论 0 17
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,182评论 0 2
  • 2018年7月5日 星期四 农历五月初二十二 天气晴 作息:昨晚22:55睡,今早4:40起床 学习:早课徐寿老师...
    饶爱兰阅读 3,973评论 0 0
  • 2016年到2018年3月幸福生活…… 每天醒来第一件事笑容面对你洗脸洗手在喂奶 拍嗝, 出门呼吸新鲜空气……看着...
    王星悅阅读 2,682评论 0 0

友情链接更多精彩内容