JavaScript简单算法-----二分查找

二分查找又称折半查找,只适用于有序数组

二分查找就是将需要查找的元素不断地与数组中间的元素进行比较,数组不断地拆分为两段(查找元素小于中间值在前半段查找,大于中间值在后半段进行查找)

代码展示

// javaScript 的二分查找算法
    var Arr = [1, 3, 6, 7, 10, 12, 15];
    // 参数(需要查找的元素,在哪个数组对象中查找,最小索引,最大索引)
    function getNum(find, arr, low, high) {
        // 判断数组不为空
        if (low <= high) {
            // 第一个元素为查找元素
            if (arr[low] == find) {
                return low;
            }
            // 最后一个元素为查找元素
            if (arr[high] == find) {
                return high;
            }
            //取中间元素
            var mid = Math.ceil((high + low) / 2);
            // 中间元素为查找元素
            if (arr[mid] == find) {
                return mid;
            }
            // 从中间元素进行分段
                // 查找元素小于中间值,在前半段查找
            else if (arr[mid] > find) { 
                return getNum(find, arr, low, mid - 1);
            }
                // 查找元素大于中间值,在后半段查找
            else {
                return getNum(find, arr, mid + 1, high);
            }
        }
        return -1;
    }
    console.log("返回索引值:"+getNum(12, Arr, 0, Arr.length - 1));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容