Fancy DSA Fancy DSA
数据结构
算法
LeetCode
  • 关于
  • 导航 (opens new window)
  • 分类
  • 标签
  • 归档
设计模式 (opens new window)
博客 (opens new window)
GitHub (opens new window)

Jonsam NG

想的更多,也要想的更远
数据结构
算法
LeetCode
  • 关于
  • 导航 (opens new window)
  • 分类
  • 标签
  • 归档
设计模式 (opens new window)
博客 (opens new window)
GitHub (opens new window)
  • 开始上手
  • Plan 计划
  • Roadmap 路线
  • 算法简介
  • Sort 排序

  • Search 搜索

  • Recursive 递归

    • BinaryEquivalent [二进制转化]
    • BinarySearch [二分搜索]
      • 实现
      • 参见
    • EuclideanGCD [辗转相除法]
    • Factorial [阶乘]
    • FibonacciNumberRecursive [斐波那契数]
    • FloodFill [Flood Fill算法]
    • KochSnowflake [科赫雪花算法]
    • Palindrome [回文]
    • TowerOfHanoi [汉诺塔]
  • Graph 图

  • Tree 树

  • Math 数学

  • Hash 哈希

  • String 字符串

  • BitManipulation 位操纵

  • Backtracking 回溯

  • DynamicProgramming 动态规划

  • Cache 缓存

  • Array 数组

  • Ciphers 密码学

  • Conversions 转换

  • ProjectEuler 欧拉计划

  • 其他

  • 算法
  • Recursive 递归
jonsam
2022-05-01
目录

BinarySearch [二分搜索]

# 实现

# JavaScript


/**
 * @function BinarySearch
 * @description Search the integer inside the sorted integers array using Binary Search Algorithm.
 * @param {Integer[]} arr - sorted array of integers
 * @param {Integer} low - The input integer
 * @param {Integer} high - The input integer
 * @param {Integer} searchValue - The input integer
 * @return {Integer} - return index of searchValue if found else return -1.
 * @see [BinarySearch](https://en.wikipedia.org/wiki/Binary_search_algorithm)
 */

const binarySearch = (arr, searchValue, low = 0, high = arr.length - 1) => {
  // base case
  if (high < low || arr.length === 0) return -1

  const mid = low + Math.floor((high - low) / 2)

  // If the element is present at the middle
  if (arr[mid] === searchValue) {
    return mid
  }

  // If element is smaller than mid, then
  // it can only be present in left subarray
  if (arr[mid] > searchValue) {
    return binarySearch(arr, searchValue, low, mid - 1)
  }

  // Else the element can only be present in right subarray
  return binarySearch(arr, searchValue, mid + 1, high)
}

export { binarySearch }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# 参见

  • BinarySearch [二分搜索]
编辑 (opens new window)
上次更新: 2022/06/20, 20:15:04
BinaryEquivalent [二进制转化]
EuclideanGCD [辗转相除法]

← BinaryEquivalent [二进制转化] EuclideanGCD [辗转相除法]→

最近更新
01
0-20题解
10-31
02
本章导读
10-31
03
算法与转换:Part1
10-28
更多文章>
Theme by Vdoing | Copyright © 2022-2022 Fancy DSA | Made by Jonsam by ❤
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式