欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js二分查找递归和while写法代码分享

程序员文章站 2022-04-11 12:17:19
...

本文主要和大家分享js二分查找递归和while写法代码,希望能帮助到大家。

1.递归
主要是控制三个变量 start end mid ,开始 结束 中间,反复就ok了。

const data = [18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]function Recursive(s,data){

    let len = data.length
    let start = 0
    let end = len-1
    let mid
    return find(start,end,s)}function find(start,end,s){

       mid =Math.ceil((end+start)/2) 

        if (s==data[mid]) {            return s
        }         else if(s>data[mid] && start <= end) {

            end = mid-1
            return find(start,end,s)
        }        else if(s<data[mid] && start <= end){

         start  = mid+1

          return  find(start,end,s)

        }        else{            return null
        }

}
let v = f(15,data)
console.log("vvvv",v)
  1. while循环

const data = [18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]function while_find(s){
    let len = data.length
    let start = 0
    let end = len-1
    let mid

    while(start <= end){

        mid =Math.ceil((end+start)/2)

        if (s<data[mid]) {

            start = mid+1
        }        else if(s>data[mid]){            end = mid-1 
        }        else{            return s
        }


    }  return null}
let v= while_find(8)
console.log("vvvv",v)

主要借鉴了这篇文章 点击打开 里面还有一些二分算法的变形, 感兴趣的同学可以去看看 写的很棒。

相关推荐:

php二分查找算法示例分享

php 递归与非递归实现的二分查找实例代码

js基本算法:冒泡排序,二分查找

以上就是js二分查找递归和while写法代码分享的详细内容,更多请关注其它相关文章!