一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現統計一個數字在排序數組中出現次數的方法

PHP實現統計一個數字在排序數組中出現次數的方法

2019-10-26 14:57重口味AC PHP教程

這篇文章主要介紹了PHP實現統計一個數字在排序數組中出現次數的方法,涉及php基于二分查找算法在數組中進行查找及統計的相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP實現統計一個數字在排序數組中出現次數的方法。分享給大家供大家參考,具體如下:

題目

統計一個數字在排序數組中出現的次數。

題解

既然是排序數組,使用二分查找是效率最高的。找到之后再向兩側拓展一下。

代碼

  1. <?php 
  2. function GetNumberOfK($data$k
  3.   if(count($data)==0){ 
  4.     return 0; 
  5.   } 
  6.   $index = 0; 
  7.   $low = 0; 
  8.   $high = count($data)-1; 
  9.   $middle = 0; 
  10.   //二分查找找到k的index 
  11.   while($low<=$high){ 
  12.     $middle = ($high+$low)>>1; 
  13.     if($data[$middle]==$k){ 
  14.       $index = $middle
  15.       break
  16.     } 
  17.     else if($data[$middle]>$k) { 
  18.       $high = $middle -1; 
  19.     }else
  20.       $low = $middle+1; 
  21.     } 
  22.     $index = -1; 
  23.   } 
  24.   // console.log(index); 
  25.   // 如果沒找到 
  26.   if($index==-1){ 
  27.     return 0; 
  28.   } 
  29.   //找到了 分別往左右查找邊界 
  30.   $start = $index
  31.   $end = $index
  32.   $count = 0; 
  33.   while($data[$start]==$k){ 
  34.     $count++; 
  35.     $start--; 
  36.   } 
  37.   while($data[$end]==$k){ 
  38.     $count++; 
  39.     $end++; 
  40.   } 
  41.   return $count-1; 

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 扒开腿开嫩苞 | 免费看日韩 | 四虎影视永久在线观看 | 国产性做久久久久久 | 干美女视频 | 日本欧美一二三区色视频 | 国产午夜精品福利久久 | 深夜视频在线播放 | 亚洲精品久久啪啪网站成年 | 99精品视频免费 | 日韩不卡一区二区 | 99久久免费精品视频 | 日本一片免费观看高清完整 | 亚洲狠狠婷婷综合久久久久网站 | 91制片厂制作果冻传媒破解 | 国产在线视频色综合 | 91九色麻豆 | 免费十几分视频 | 午夜十八岁禁 | 999导航| 国产三级自拍视频 | 公妇乱淫 | 欧美日韩国产一区二区三区在线观看 | yy111111影院理论大片 | 欧美精品三区 | 91在线一区二区三区 | 恩不要好大好硬好爽3p | 男女男在线精品网站免费观看 | 扒开尿口 | 亚洲日本va午夜中文字幕 | 国产午夜免费 | 亚洲第一男人网站 | 日本片免费观看一区二区 | 国产乱子伦一区二区三区 | 精品国产精品人妻久久无码五月天 | 无码乱人伦一区二区亚洲一 | 国产国语在线播放视频 | 亚洲国产精品久久人人爱 | 男同gay作爰视频网站 | 美女和男人一起差差 | 美女污视频在线观看 |