Maison > interface Web > js tutoriel > le corps du texte

Programme JavaScript pour calculer la fréquence des éléments du tableau

WBOY
Libérer: 2023-09-21 08:01:03
avant
1091 Les gens l'ont consulté

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

Le calcul de la fréquence signifie que nous devons compter le nombre de fois qu'un élément d'un tableau apparaît dans un tableau donné. Nous pouvons utiliser une structure de données intégrée comme une carte pour obtenir les fréquences ou nous pouvons trier le tableau pour obtenir les fréquences des éléments du tableau. Nous discuterons des deux méthodes, examinons-les une par une -

Trier le tableau

Dans cette méthode, nous allons trier le tableau et vérifier si l'élément actuel est le même que l'élément précédent et si le tableau actuel n'est pas le même, alors c'est le nouvel élément et la fréquence de l'élément précédent jusqu'à ce que le nombre soit une variable we Ceci sera utilisé pour incrémenter le nombre d’éléments.

Méthode

  • Tout d'abord, nous allons trier le tableau à l'aide de la méthode de tri intégrée.

  • Nous allons créer un tableau qui stockera les éléments du tableau donné et leurs fréquences respectives.

  • Nous allons créer une variable "count" pour stocker le nombre d'occurrences de l'élément actuel.

  • Nous allons parcourir le tableau et vérifier à chaque itération si l'élément actuel est égal à l'élément précédent.

  • Si l'élément actuel est égal à l'élément précédent, alors nous incrémenterons la valeur de comptage.

  • Si l'élément actuel n'est pas égal à l'élément précédent, alors nous stockerons le nombre de l'élément précédent sous forme de paire de clés dans le tableau indiquant la fréquence de l'élément actuel.

    李>
  • De plus, nous mettrons à jour la valeur de comptage à 1.

  • Après avoir itéré le tableau, nous stockerons la fréquence du dernier élément du tableau trié car il ne sera pas stocké et la boucle se termine.

Exemple

Voyons le code qui implémente la méthode ci-dessus, ajoutons-le et comprenons-le mieux.

// 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);
Copier après la connexion

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(N*log(N)), car nous avons trié le tableau, et le temps requis est N*log(N), et nous avons parcouru le tableau une fois, ce qui nécessite O( N ) time, où N est le nombre d'éléments présents dans le tableau donné.

La complexité spatiale du code ci-dessus est O(1) car nous n'utilisons aucun espace supplémentaire, mais si nous voulons stocker la fréquence, alors il y aura de l'espace supplémentaire et c'est O(N).

À quelle fréquence tous les éléments de la carte sont utilisés

Une carte est une structure de données qui stocke des valeurs sous forme de paires de clés, et les données peuvent être mises à jour ultérieurement. L'ajout ou la mise à jour de données dans la carte prend un temps logarithmique, mais ne nécessite pas de trier le tableau, ce qui signifie que nous n'avons pas besoin de modifier le tableau comme nous l'avons fait dans le programme précédent. Regardons d'abord les méthodes, puis nous entrerons dans la partie codage -

Méthode

  • Tout d'abord, nous allons créer la carte en utilisant le nouveau mot-clé.

  • Nous allons parcourir le tableau et vérifier chaque élément.

  • Si l'élément actuel existe dans la carte, alors nous incrémenterons la valeur stockée pour l'élément actuel, qui est la fréquence.

  • Si l'élément n'est pas stocké alors nous l'ajoutons comme clé de la carte et lui donnons la valeur 1.

  • Après avoir itéré le tableau, nous pouvons imprimer les valeurs stockées dans la carte sous forme de paires clé-valeur.

Exemple

Nous avons vu comment le code est implémenté, passons maintenant à la partie implémentation pour mieux comprendre le code -

// 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)
Copier après la connexion

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(N*log(N)), où N est la taille du tableau, du facteur ou du journal en fonction du fonctionnement du mappage. Le code ci-dessus a une complexité spatiale de O(N) et nécessite de stocker des éléments dans la carte.

Utiliser une carte pour trouver les fréquences est une bonne chose car nous n'avons pas besoin de modifier le tableau donné.

Conclusion

Dans ce tutoriel, nous présenterons un programme JavaScript permettant de calculer la fréquence des éléments du tableau. Calculer la fréquence signifie que nous devons compter le nombre de fois qu'un élément d'un tableau apparaît dans un tableau donné. Nous avons vu deux façons de résoudre le problème donné, l'une consiste à trier les éléments à l'aide de la fonction de tri intégrée et l'autre consiste à le faire en utilisant la structure de données cartographiques intégrée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!