首页 >web前端 >js教程 > 正文

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

原创2018-03-08 16:19:400662

本文主要和大家分享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写法代码分享的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:javascript while 写法
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类