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

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

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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品一在线观看 | 色在线影院 | 含羞草传媒一天免费看下 | 好看的亚洲视频 | 国产新疆成人a一片在线观看 | 公交车强校花系列小说 | 久久久久久久久女黄9999 | 精品午夜视频 | tube日本高清老少配 | 亚洲 欧美 另类 中文 在线 | 美女被的视频 | 日本免费三片在线观看 | 午夜福利合集1000在线 | 99九九国产精品免费视频 | 亚洲欧美在线观看一区二区 | 四虎影视在线看免费 720p | 亚洲qvod图片区电影 | 国产成人综合久久 | 国产二区视频 | 女教师三级做受 | 白丝女榨干蹂躏我 | 成人影院在线观看免费 | 亚洲 欧美 日本 国产 高清 | 日本一卡二卡3卡四卡无卡网址 | 蝴蝶传媒免费安装 | 成年人天堂| 亚洲国产精品自产在线播放 | 国产91在线精品 | 国产haodiaose最新 | 国产精品久久久久久爽爽爽 | 性欧美hd| 60岁妇女毛片免费观看 | 国色天香社区在线视频播放 | 色综合综合色 | 91精品91| 跪在老师脚下吃丝袜脚 | 亚洲高清国产拍精品影院 | 日本三级免费观看 | 欧美日韩国产精品自在自线 | 日本暖暖在线视频 | 99在线观看国产 |