定义:在一个有序的元素列表中查找具体某个元素时,每次都查中间的元素,每次都可以排除一半元素

    输入:有序的元素列表
    输出:要查找的元素在元素列表中所在位置 / null

    想要知道这个元素列表最多需要多少步可以猜出具体是哪个元素,可以用以下公式计算得出:
    最多需要多少步 = log2n(n代表元素列表的元素个数)/ logn (log 指的都是 log2)

    如某元素列表共有 32 个数字,那么最多需要几步可以猜出别人随意选中的数字?
    1. 32 代入 n,也就是 log232
    2.log232 意思是,乘以多少个 2 等于 32
    3.计算 2n = 32,得出 5
    结果就是,最多需要5步

    1. # JS 实现二分查找
    2. function search(list, item) {
    3. let low = 0
    4. let high = list.length - 1
    5. let mid
    6. while (low <= high) {
    7. mid = Math.floor((low + high) / 2)
    8. let guess = list[mid]
    9. if (guess === item) {
    10. return mid
    11. } else if (guess < item) {
    12. low = mid + 1
    13. } else if (guess > item) {
    14. high = mid - 1
    15. }
    16. }
    17. return null
    18. }
    19. search([1,2,3,4,5,6,7], 7)