js版二分搜索算法

function binary_search(arr, key) {
    let low = 0,
        high = arr.length - 1
    while (low <= high) {
        let mid = parseInt((high + low) / 2)
        if (key == arr[mid]) {
            return mid
        } else if (key > arr[mid]) {
            low = mid + 1
        } else if (key < arr[mid]) {
            high = mid - 1
        } else {
            return -1
        }
    }
}
let arr = [1, 3, 4, 5, 7, 9],
    key = 7
    
binary_search(arr, key) // 4
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 算法:二分搜索算法(折半查找算法)时间复杂度: 二分搜索算法概述 二分搜索算法伪代码 二分搜索算法实现 二分搜索算...
    不存在的貓阅读 2,260评论 0 0
  • 什么是算法? 算法的定义是完成一项任务的一系列步骤,就像一份食谱,第一步干什么,第二步干什么... 在计算机科学中...
    wopen阅读 944评论 0 1
  • 介绍 二分搜索是一种在有序数组中查找某一特定元素的搜索算法。这种搜索算法每一次比较都使搜索范围缩小一半。 复杂度 ...
    盗梦者_56f2阅读 830评论 0 1
  • 说明 二分查找的数组必须是有序的,二分查找的优点是查找操作仅需要O(lgN)时间。 逻辑 首先传入的数组必须是有序...
    AusenZ阅读 336评论 0 1
  • 前提:有序 无序是没法用二分法进行搜索查找的 二分查找法的时间复杂度:按照最不理想的情况:每次遍历会去掉一半注定不...
    名字是乱打的阅读 159评论 0 1

友情链接更多精彩内容