Heim  >  Artikel  >  Backend-Entwicklung  >  PHP erklärt, wie man die Häufigkeit des Vorkommens einer Zahl in einem sortierten Array zählt

PHP erklärt, wie man die Häufigkeit des Vorkommens einer Zahl in einem sortierten Array zählt

jacklove
jackloveOriginal
2018-07-02 17:52:131757Durchsuche

In diesem Artikel wird hauptsächlich die PHP-Methode zum Zählen der Anzahl des Vorkommens einer Zahl in einem sortierten Array vorgestellt. Dabei werden die zugehörigen Bedienfähigkeiten von PHP zum Suchen und Zählen in Arrays basierend auf dem binären Suchalgorithmus berücksichtigt.

Das Beispiel in diesem Artikel beschreibt, wie PHP das Zählen implementiert, wie oft eine Zahl in einem sortierten Array erscheint. Geben Sie es wie folgt als Referenz an alle weiter:

Frage

Zählen Sie, wie oft eine Zahl in einem sortierten Array erscheint.

Lösung

Da es sich um ein sortiertes Array handelt, ist die binäre Suche am effizientesten. Sobald Sie es gefunden haben, erweitern Sie es auf beide Seiten.

Code

<?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;
}

PS: Hier nochmal für alle Empfehlen Sie 2 statistische Tools (JS-Implementierung) mit ähnlichen Funktionen als Referenz:

Online-Wortzähltool:
http :/ /tools.jb51.net/code/zishutongji

Online-Zeichenstatistik- und Bearbeitungstool:
http://tools.jb51.net/ code/ char_tongji

Artikel, die Sie interessieren könnten:

PHP ruft ffmpeg auf, um Video-Screenshots zu erstellen und das Skript zu verbinden

Detaillierte Erläuterung der Szenarien und Verifizierungsregeln in Yii2

Zusammenfassung der Parallelitätsstresstests von MixPHP, Yii und CodeIgniter

Das obige ist der detaillierte Inhalt vonPHP erklärt, wie man die Häufigkeit des Vorkommens einer Zahl in einem sortierten Array zählt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn