ホームページ > バックエンド開発 > PHPチュートリアル > PHP は、ソートされた配列内の数値の出現数をカウントする方法を説明します

PHP は、ソートされた配列内の数値の出現数をカウントする方法を説明します

jacklove
リリース: 2023-04-02 08:12:01
オリジナル
1785 人が閲覧しました

この記事では主に、ソートされた配列内の数値の出現数をカウントする 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<=$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;
}
ログイン後にコピー

追記: 皆さんにもう一度お届けします参考として、同様の機能を備えた 2 つの統計ツール (JS 実装) を推奨します:

オンライン単語数統計ツール:
http : //tools.jb51.net/code/zishutongji

オンライン キャラクター統計および編集ツール:
http://tools.jb51.net/ code /char_tongji

興味があるかもしれない記事:

PHP は ffmpeg を呼び出してビデオのスクリーンショットを撮り、スクリプトを結合します

Yii2 のシナリオと検証ルールの詳細な説明

##MixPHP、Yii、CodeIgniter の同時実行ストレス テストの概要


#

以上がPHP は、ソートされた配列内の数値の出現数をカウントする方法を説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート