• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现统计一个数字在排序数组中出现次数的方法

    本文实例讲述了PHP实现统计一个数字在排序数组中出现次数的方法。分享给大家供大家参考,具体如下:

    题目

    统计一个数字在排序数组中出现的次数。

    题解

    既然是排序数组,使用二分查找是效率最高的。找到之后再向两侧拓展一下。

    代码

    ?php
    function GetNumberOfK($data, $k)
    {
      if(count($data)==0){
        return 0;
      }
      $index = 0;
      $low = 0;
      $high = count($data)-1;
      $middle = 0;
      //二分查找找到k的index
      while($low=$high){
        $middle = ($high+$low)>>1;
        if($data[$middle]==$k){
          $index = $middle;
          break;
        }
        else if($data[$middle]>$k) {
          $high = $middle -1;
        }else{
          $low = $middle+1;
        }
        $index = -1;
      }
      // console.log(index);
      // 如果没找到
      if($index==-1){
        return 0;
      }
      //找到了 分别往左右查找边界
      $start = $index;
      $end = $index;
      $count = 0;
      while($data[$start]==$k){
        $count++;
        $start--;
      }
      while($data[$end]==$k){
        $count++;
        $end++;
      }
      return $count-1;
    }
    
    

    PS:这里再为大家推荐2款功能类似的统计工具(JS实现)供大家参考使用:

    在线字数统计工具:
    http://tools.jb51.net/code/zishutongji

    在线字符统计与编辑工具:
    http://tools.jb51.net/code/char_tongji

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php程序设计算法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • php实现数组中出现次数超过一半的数字的统计方法
    • PHP重置数组为连续数字索引的几种方式总结
    • PHP简单实现合并2个数字键数组值的方法
    • php恢复数组的key为数字序列的方法
    • php提取数字拼接数组的具体操作
    上一篇:PHP各版本中函数的类型声明详解
    下一篇:PHP调用ffmpeg对视频截图并拼接脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现统计一个数字在排序数组中出现次数的方法 PHP,实现,统计,一个,数字,