Maison > développement back-end > C++ > Comment puis-je trier efficacement un tableau de sous-tableaux en fonction de leur premier élément ?

Comment puis-je trier efficacement un tableau de sous-tableaux en fonction de leur premier élément ?

Mary-Kate Olsen
Libérer: 2024-11-14 21:55:02
original
402 Les gens l'ont consulté

How Can I Sort an Array of Subarrays Based on Their First Element Efficiently?

Le tri des tableaux en fonction du premier élément de leurs sous-tableaux pose un défi. Plutôt que de manipuler le tableau directement, envisagez une approche alternative.

Créez un tableau d'indices faisant référence au tableau d'origine. Triez les indices en fonction du premier élément des sous-tableaux à ces indices.

Cette stratégie présente plusieurs avantages :

  1. Elle est plus efficace que de trier le tableau d'origine lui-même.
  2. Il préserve l'ordre d'origine du tableau.
  3. Il simplifie la gestion des tris complexes critères.

Voici un exemple en C :

#include <algorithm>
#include <iostream>

int main()
{
    int index[3] = {0, 1, 2};
    int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}};
    std::sort(index, index + 3, [&timeTable](int n1, int n2) {
        return timeTable[n1][0] < timeTable[n2][0];
    });

    for (int i = 0; i < 3; ++i)
    {
        std::cout << "The index is " << index[i] << ".  The data at this index is  ["
                  << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n";
    }

    return 0;
}
Copier après la connexion

Exemple en direct

En utilisant des indices au lieu de manipuler le tableau d'origine, vous pouvez trier des structures de données complexes plus efficacement et plus facilement.

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:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal