热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php统计数组重复次数并排序,PHP实现统计一个数字在排序数组中出现次数的方法讲解...

这篇文章主要介绍了PHP实现统计一个数字在排序数组中出现次数的方法,涉及php基于二分查找算法在数组中进行查找及统计的相关操作技巧,需要的朋友可以参考下本文实例讲述了PHP实现统计

这篇文章主要介绍了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<&#61;$high){

$middle &#61; ($high&#43;$low)>>1;

if($data[$middle]&#61;&#61;$k){

$index &#61; $middle;

break;

}

else if($data[$middle]>$k) {

$high &#61; $middle -1;

}else{

$low &#61; $middle&#43;1;

}

$index &#61; -1;

}

// console.log(index);

// 如果没找到

if($index&#61;&#61;-1){

return 0;

}

//找到了 分别往左右查找边界

$start &#61; $index;

$end &#61; $index;

$count &#61; 0;

while($data[$start]&#61;&#61;$k){

$count&#43;&#43;;

$start--;

}

while($data[$end]&#61;&#61;$k){

$count&#43;&#43;;

$end&#43;&#43;;

}

return $count-1;

}

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

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

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

您可能感兴趣的文章:



推荐阅读
author-avatar
狗狗狗699_250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有