• js实现二分搜索法


    二分搜索法:

      也称折半搜索,是一种在有序数组中查找特定元素的搜索算法。

    实现步骤:

      1. 首先从数组中间开始查找对比,若相等则找到,直接返回中间元素的索引。

      2. 若查找值小于中间值,则在小于中间值的那一部分执行步骤1的操作。

      3. 若查找值大于中间值,则在大于中间值的那一部分执行步骤1的操作。

      4. 否则,返回结果为查不到,返回-1。

    方法一:

        function binary_search1(arr, key) {
            var low = 0;
            var high = arr.length - 1;
    
            while (low <= high) {
                var mid = parseInt((low + high) / 2);
    
                if (key === arr[mid]) {
                    return mid;
                }
                else if (key < arr[mid]) {
                    high = mid + 1;
                }
                else if (key > arr[mid]) {
                    low = mid - 1;
                }
                else {
                    return -1;
                }
            }
        }

      var arr = [1,2,3,4,5,6,7,8];
      console.log(binary_search1(arr, 3));

    方法二:

        function binary_search2 (arr, low, high, key) {
            if (low > high) {
                return -1;
            }
    
            var mid = parseInt((low + high) / 2);
    
            if (key === arr[mid]) {
                return mid;
            }
            else if (key < arr[mid]) {
                high = mid - 1;
                return binary_search2(arr, low, high, key);
            }
            else if (key > arr[mid]) {
                low = mid + 1;
                return binary_search2(arr, low, high, key);
    
            }
        }

      

       var arr = [1,2,3,4,5,6,7,8];
       console.log(binary_search2(arr, 0, 7, 3));

  • 相关阅读:
    安装IDEA
    缓存工具CacheUtil
    使用Eclipse上传/下载Git项目
    Sublime文本排序&查找重复行&删除重复行
    Sublime Text 3 配置Java开发
    安装XMind
    安装Maven
    安装MySQL
    安装Eclipse及相关Plugin
    Android Xposed框架中创建模块的指导手册
  • 原文地址:https://www.cnblogs.com/zhangxiaos/p/6400703.html
Copyright © 2020-2023  润新知