zoukankan      html  css  js  c++  java
  • 查找算法

    检索算法

    顺序查找

        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;
        }
  • 相关阅读:
    centos 修改语言、时区
    去除 ufeff
    Docker介绍及使用
    消息队列
    数据结构与算法
    Haystack
    Python面向对象之魔术方法
    关于Redis处理高并发
    Redis
    RESTful规范
  • 原文地址:https://www.cnblogs.com/yfife/p/8596026.html
Copyright © 2011-2022 走看看