Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zur Berechnung der Häufigkeit von Array-Elementen

JavaScript-Programm zur Berechnung der Häufigkeit von Array-Elementen

WBOY
WBOYnach vorne
2023-09-21 08:01:031091Durchsuche

用于计算数组元素频率的 JavaScript 程序

Die Berechnung der Häufigkeit bedeutet, dass wir zählen müssen, wie oft ein Element in einem Array in einem bestimmten Array vorkommt. Wir können eine integrierte Datenstruktur wie Map verwenden, um die Häufigkeiten zu ermitteln, oder wir können das Array sortieren, um die Häufigkeiten der Array-Elemente zu ermitteln. Wir werden beide Methoden besprechen, schauen wir sie uns einzeln an -

Array sortieren

Bei dieser Methode sortieren wir das Array und prüfen, ob das aktuelle Element mit dem vorherigen Element identisch ist. Wenn das aktuelle Array nicht dasselbe ist, ist dies das neue Element und die Häufigkeit des vorherigen Elements, bis die Anzahl eine Variable ist we Dies wird verwendet, um die Anzahl der Elemente zu erhöhen.

Methode

  • Zuerst sortieren wir das Array mit der integrierten Sortiermethode.

  • Wir erstellen ein Array, das die Elemente im angegebenen Array und ihre jeweiligen Häufigkeiten speichert.

  • Wir erstellen eine Variable „count“, um die Anzahl der Vorkommen des aktuellen Elements zu speichern.

  • Wir durchlaufen das Array und prüfen bei jeder Iteration, ob das aktuelle Element dem vorherigen Element entspricht.

  • Wenn das aktuelle Element gleich dem vorherigen Element ist, erhöhen wir den Zählwert.

  • Wenn das aktuelle Element nicht mit dem vorherigen Element übereinstimmt, speichern wir die Anzahl des vorherigen Elements als Schlüsselpaar im Array, das die Häufigkeit des aktuellen Elements angibt.

    李>
  • Außerdem aktualisieren wir den Zählwert auf 1.

  • Nachdem wir das Array iteriert haben, speichern wir die Häufigkeit des letzten Elements des sortierten Arrays, da es nicht gespeichert wird und die Schleife endet.

Beispiel

Sehen wir uns den Code an, der die obige Methode implementiert, und fügen Sie ihn hinzu, um ihn besser zu verstehen.

// given array 
var arr = [ 1, 4, 5, 6, 2, 2, 2, 4, 5, 5, 4, 6, 9, 1, 2, 2, 3]

// sorting the array 
arr.sort()

var count = 1 

for(var i = 1;i<arr.length; i++){
   if(arr[i] == arr[i-1]) {
      count++;
   }
   else {
      console.log("The frequency of "+ arr[i-1] + " is: " + count);
      count = 1;
   }
}

console.log("The frequency of "+ arr[arr.length-1] + " is: " + count);

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(N*log(N)), da wir das Array sortiert haben und die erforderliche Zeit N*log(N) beträgt und wir das Array einmal durchlaufen haben, was O( N ) Zeit, wobei N die Anzahl der im angegebenen Array vorhandenen Elemente ist.

Die Speicherplatzkomplexität des obigen Codes beträgt O(1), da wir keinen zusätzlichen Speicherplatz verwenden. Wenn wir jedoch die Häufigkeit speichern möchten, ist etwas zusätzlicher Speicherplatz vorhanden, und das ist O(N).

Wie oft werden alle Elemente der Karte verwendet

Eine Karte ist eine Datenstruktur, die Werte in Form von Schlüsselpaaren speichert und die Daten später aktualisiert werden können. Das Hinzufügen oder Aktualisieren von Daten in der Karte nimmt logarithmische Zeit in Anspruch, erfordert jedoch kein Sortieren des Arrays, was bedeutet, dass wir das Array nicht wie im vorherigen Programm ändern müssen. Schauen wir uns zuerst die Methoden an und dann kommen wir zum Codierungsteil -

Methode

  • Zuerst erstellen wir die Karte mit dem neuen Schlüsselwort.

  • Wir werden das Array durchlaufen und jedes Element überprüfen.

  • Wenn das aktuelle Element in der Karte vorhanden ist, erhöhen wir den für das aktuelle Element gespeicherten Wert, also die Häufigkeit.

  • Wenn das Element nicht gespeichert ist, fügen wir es als Schlüssel zur Karte hinzu und geben ihm den Wert 1.

  • Nachdem wir das Array iteriert haben, können wir die in der Karte gespeicherten Werte als Schlüssel-Wert-Paare drucken.

Beispiel

Wir haben gesehen, wie der Code implementiert wird. Gehen wir nun zum Implementierungsteil, um den Code besser zu verstehen -

// given array 
var arr = [ 1, 4, 5, 6, 2, 2, 2, 4, 5, 5, 4, 6, 9, 1, 2, 2, 3]
var map = new Map()
for(var i = 0;i<arr.length; i++){
   if(map.has(arr[i])){
      var k = map.get(arr[i]);
      map.delete(arr[i]);
      map.set(arr[i],k+1)
   }
   else{
      map.set(arr[i],1);
   }
}
console.log(map)

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(N*log(N)), wobei N die Größe des Arrays, Faktors oder Protokolls ist, je nachdem, wie die Zuordnung funktioniert. Der obige Code hat eine räumliche Komplexität von O(N) und erfordert das Speichern von Elementen in der Karte.

Die Verwendung einer Karte zum Finden von Frequenzen ist gut, da wir das gegebene Array nicht ändern müssen.

Fazit

In diesem Tutorial stellen wir ein JavaScript-Programm zur Berechnung der Häufigkeit von Array-Elementen vor. Die Berechnung der Häufigkeit bedeutet, dass wir zählen müssen, wie oft ein Element in einem Array in einem bestimmten Array vorkommt. Wir haben zwei Möglichkeiten gesehen, das gegebene Problem zu lösen: Eine besteht darin, die Elemente mithilfe der integrierten Sortierfunktion zu sortieren, und die andere darin, dies mithilfe der integrierten Kartendatenstruktur zu tun.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm zur Berechnung der Häufigkeit von Array-Elementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen