码迷,mamicode.com
首页 > 编程语言 > 详细

查找算法

时间:2018-03-18 17:16:14      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:false   ++   func   gpo   bin   max   function   seq   最大   

检索算法

顺序查找

    function seqSearch(arr, data) {
        for(var i = 0; i < arr.length; i++) {
            if(arr[i] == data) {
                return true;
            }
        }
        return false;
    }

查找最大值

    function getMax(arr) {
        if(arr.length == 0) {return}
        var max = arr[0];
        for(var i = 1; i < arr.length; i++) {
            if(arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }

查找最小值

    function getMin(arr) {
        if(arr.length == 0) {return}
        var min = arr[0];
        for(var i = 1; i < arr.length; i++) {
            if(arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }

二分查找(适用于有序数列)

    function binSearch(arr, data) {
        var upB = arr.length-1;
        var downB = 0;
        while(downB <= upB) {
            var mid = Math.floor((upB + downB)/2);
            if(arr[mid] < data) {
                downB = mid + 1;
            }
            else if(arr[mid] > data) {
                upB = mid - 1;
            }
            else {
                return mid;
            }
        }
        return -1;
    }

计算重复次数

    function repeatNum(arr, data) {
        var count = 0;
        var position = binSearch(arr, data);
        if(position > -1) {
            count++;
            for(var i = position-1; i >= 0; i--) {
                if(arr[i] == data) {
                    count++;
                }else {
                    break;
                }
            }
            for(var j = position + 1; j < arr.length; j++) {
                if(arr[j] == data) {
                    count++;
                }else {
                    break;
                }
            }
        }
        return count;
    }

查找算法

标签:false   ++   func   gpo   bin   max   function   seq   最大   

原文地址:https://www.cnblogs.com/yfife/p/8596026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!