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;
        }
  • 相关阅读:
    Linux命令之more
    Linux命令之sort
    STM32启动模式
    poll调用深入解析
    STM32 控制步进电机 28BYJ-48
    NEC协议
    家用宽带的上传和下载速度
    Ubuntu14.04更新源
    波特率和比特率【串口为例】
    CentOS: make menuconfig error: curses.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/yfife/p/8596026.html
Copyright © 2011-2022 走看看