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));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值