校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP實現找出數組中出現次數超過數組長度一半的數字算法示例

PHP實現找出數組中出現次數超過數組長度一半的數字算法示例

熱門標簽:400電話申請辦理 百度地圖標注類型是酒店 福建高頻外呼防封系統哪家好 隨州銷售電銷機器人公司 商丘外呼系統好處 外呼系統人工客服 網絡電話400申請 周口網絡回撥外呼系統 全國各省地圖標注點

本文實例講述了PHP實現找出數組中出現次數超過數組長度一半的數字算法。分享給大家供大家參考,具體如下:

?php
* 算法要求:數組中有一個數字出現的次數超過了數組長度的一半,找出這個數字。
*
* 算法分析:我們需要計算數組中每個數字的出現次數。在PHP中我們可以使用in_array函數
* 來判斷一個元素是否出現在數組中。比如數組中含有1,2,3三個元素,我們要判斷1是否存在
* 可以使用in_array(1,$array)來判斷,但是這樣只能判斷1出現了一次,因為對于含有數組
* 元素1,2,3,1這樣的數組來說,該函數只能判斷1存在與數組中,而不能給出具體的出現次數。
* 因為我們一次只能給它傳遞一個參數,我們判斷了第一個1存在后,函數就返回了,為了能夠繼續
* 判斷后一個1,我們需要循環,讓該函數多次執行。
*
* 為此,我們需要一個原數組的拷貝。我們循環原數組,然后判斷每一個元素是否存在于拷貝數組中。
* 考慮數組array(1,2,3,1),以及拷貝數組array(1,2,3,1)。它們是完全一樣的,當我們循環
* 第一個數組時,先判斷第一個1存在后,計數器自增,當循環到第二個1的時候,計數器再自增。這樣
* 我們就可以準確的判斷每一個數組元素的出現次數。
*
* 我們將數字和對應的出現次數,使用鍵 對的方式存儲在數組中。比如array('1'=>2),表示,數字1出現
* 了2次。
*
* 下面的代碼給出了具體實現過程。
*/
$array=array(1,1,3,1,1,14,1,1,4,6,7,1,1,21,33);
//創建原數組
$temp=$array;
//得到原數組的一個拷貝
$result=array();
//初始化計數器數組
foreach ($array as $value)//循環原數組
{
  if(in_array($value,$temp))//判斷數字是否存在于拷貝數組中
  {
    if(isset($result[$value]))//判斷該數字是否已經被計數過
    {
      $result[$value]=$result[$value]+1;
      //如果已經出現過,計數器自增
    } else
    {
      $result[$value]=1;
      //如果沒有,計數器初始化1
    }
  }
}
$len=count($array);
//計算數組長度
foreach ($result as $key=>$value)//循環計數器數組,這里的$key表示數字,$value表示出現次數
{
  if($value>($len/2))//如果一個數字的出現次數超過了數組長度的一半
  {
    echo '數組中共有元素'.$len.'個br>';
    echo $key.'出現了'.$value.'次,超過了數組長度的一半'.($len/2);
    break;
    //數組中只可能有一個數字的出現次數超過數組長度的一半
  }
}
?>

運行結果:

數組中共有元素15個
1出現了8次,超過了數組長度的一半7.5

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

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

您可能感興趣的文章:
  • php查找字符串出現次數的方法
  • php計算數組相同值出現次數的代碼(array_count_values)
  • PHP獲取數組長度或某個值出現次數的方法
  • php獲取字符串中各個字符出現次數的方法
  • PHP中substr_count()函數獲取子字符串出現次數的方法
  • PHP實現統計所有字符在字符串中出現次數的方法
  • PHP統計二維數組元素個數的方法
  • php統計數組元素個數的方法
  • PHP統計數值數組中出現頻率最多的10個數字的方法
  • PHP實現統計一個數字在排序數組中出現次數的方法

標簽:樂山 海南 十堰 定西 佛山 南寧 六安 迪慶

巨人網絡通訊聲明:本文標題《PHP實現找出數組中出現次數超過數組長度一半的數字算法示例》,本文關鍵詞  PHP,實現,找出,數組,中,出現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現找出數組中出現次數超過數組長度一半的數字算法示例》相關的同類信息!
  • 本頁收集關于PHP實現找出數組中出現次數超過數組長度一半的數字算法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 丰顺县| 策勒县| 简阳市| 盐城市| 锡林郭勒盟| 定结县| 大邑县| 额尔古纳市| 门源| 银川市| 文山县| 株洲市| 东山县| 乐清市| 朝阳市| 剑阁县| 华坪县| 黔南| 应城市| 马鞍山市| 黄骅市| 仙居县| 临武县| 灵台县| 合川市| 花莲县| 咸丰县| 乐昌市| 古田县| 寻乌县| 阿坝| 昭平县| 铅山县| 承德市| 湘乡市| 道真| 元朗区| 建阳市| 南皮县| 东乡| 阿巴嘎旗|