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.
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.
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));
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.
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 bouclearr. 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 .
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.
result, ou jusqu'à ce que la fin du tableau d'origine soit atteinte.
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!