Maison > interface Web > js tutoriel > Programme JavaScript pour trouver les k plus grands éléments d'un tableau dans l'ordre d'origine

Programme JavaScript pour trouver les k plus grands éléments d'un tableau dans l'ordre d'origine

WBOY
Libérer: 2023-09-01 11:17:06
avant
1462 Les gens l'ont consulté

JavaScript 程序按原始顺序查找数组的 k 个最大元素

Nous utiliserons la méthode de tri des tableaux JavaScript et la technique de découpage pour trouver les k plus grands éléments du tableau dans l'ordre d'origine. Tout d’abord, nous trions le tableau par ordre décroissant, puis nous le découpons du début jusqu’au kième index pour obtenir les k éléments les plus grands. En préservant l'ordre original des éléments, la signification et le contexte des données restent intacts, ce qui nous permet d'analyser et d'interpréter plus facilement les résultats.

Méthode

La méthode pour trouver les k plus grands éléments d'un tableau dans l'ordre original peut être décrite comme suit -

  • Créez un nouveau tableau vide pour stocker jusqu'à k éléments.

  • Parcourez le tableau d'entrée et comparez chaque élément aux éléments du nouveau tableau.

  • Si le nouveau tableau contient moins de k éléments, ajoutez simplement l'élément actuel au nouveau tableau.

  • Si le nouveau tableau contient k éléments, comparez l'élément actuel avec le plus petit élément du nouveau tableau.

  • Si l'élément actuel est supérieur à l'élément minimum, supprimez l'élément minimum et ajoutez l'élément actuel au nouveau tableau.

  • Enfin, renvoyez un nouveau tableau contenant jusqu'à k éléments dans l'ordre d'origine dans lequel ils apparaissent dans le tableau d'entrée.

Exemple

Voici un exemple JavaScript fonctionnel complet pour trouver les k plus grands éléments d'un tableau dans l'ordre d'origine -

function findKMaxElements(arr, k) {
   
   // Create a copy of the original array
   let sortedArr = [...arr];
   
   // Sort the copy of the array in descending order
   sortedArr.sort((a, b) => b - a);
   
   // Slice the first k elements of the sorted array
   let kMaxElements = sortedArr.slice(0, k);
   
   // Create a result array to store the k maximum elements in their original order
   let result = [];
   
   // Loop through the original array
   for (let i = 0; i < arr.length; i++) {
      
      // Check if the current element is in the kMaxElements array
      if (kMaxElements.includes(arr[i])) {
         
         // If yes, add it to the result array
         result.push(arr[i]);
         
         // Remove the element from the kMaxElements array
         
         // to keep track of the elements that have already been added to the result
         kMaxElements.splice(kMaxElements.indexOf(arr[i]), 1);
         
         // If the kMaxElements array is empty, it means all k maximum elements have been found
         if (kMaxElements.length === 0) {
            break;
         }
      }
   }
   
   // Return the result array
   return result;
}
// Test the function with an example array
let arr = [3, 2, 1, 4, 5];
let k = 3;
console.log(findKMaxElements(arr, k));
Copier après la connexion

Instructions

    La fonction
  • findKMaxElements prend un tableau arr et un entier k en entrée.

  • La première étape consiste à créer une copie du tableau original arr et à la trier par ordre décroissant en utilisant la méthode sort. Cela nous permettra de trouver facilement les k plus grands éléments.

  • La méthode
  • slice est utilisée pour extraire les k premiers éléments du tableau trié et les stocker dans un nouveau tableau kMaxElements.

    李>
  • Créez un tableau de résultatspour stocker les k plus grands éléments dans l'ordre d'origine.

    La boucle
  • for est utilisée pour parcourir le tableau d'origine

    arr. Pour chaque élément du tableau, le code vérifie s'il se trouve dans le tableau kMaxElements à l'aide de la méthode includes .

  • Si l'élément actuel est dans le tableau

    kMaxElements , ajoutez-le au tableau result . La méthode splice est utilisée pour supprimer des éléments du tableau kMaxElements afin de garder une trace des éléments qui ont été ajoutés au résultat.

  • La boucle continue jusqu'à ce que tous les k éléments les plus grands soient trouvés et ajoutés au tableau

    result, ou jusqu'à ce que la fin du tableau d'origine soit atteinte.

  • La dernière étape consiste à renvoyer le tableau

    result contenant les k plus grands éléments du tableau d'origine dans l'ordre d'origine.

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