Heim > Backend-Entwicklung > C++ > Hauptteil

Wie sortiere ich ein mehrdimensionales Array nach dem ersten Element jedes Subarrays in C?

Barbara Streisand
Freigeben: 2024-11-25 21:58:15
Original
916 Leute haben es durchsucht

How to Sort a Multi-Dimensional Array by the First Element of Each Subarray in C  ?

Sortieren mehrdimensionaler Arrays nach dem ersten Element des Subarrays in C

Um ein mehrdimensionales Array nach dem ersten Element jedes Subarrays zu sortieren, Es wird empfohlen, einen indirekten Sortieransatz zu verwenden, anstatt das Array direkt zu manipulieren. Dazu gehört das Erstellen eines Arrays von Indizes, die auf das ursprüngliche Array verweisen, und das Sortieren der Indizes nach den gewünschten Kriterien.

Implementierung

Hier ist eine Beispielimplementierung in C:

#include <algorithm>

int main() {
    // Sample array of arrays
    int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}};

    // Create an array of indices to use for sorting
    int indices[3] = {0, 1, 2};

    // Sort indices based on the first element of each subarray in timeTable
    std::sort(indices, indices + 3, [](int i1, int i2) { 
        return timeTable[i1][0] < timeTable[i2][0]; 
    });

    // Access the sorted subarrays using the sorted index array
    for (int i = 0; i < 3; ++i) {
        std::cout << "Subarray at index " << indices[i] 
                  << ": [" << timeTable[indices[i]][0] << ", " 
                  << timeTable[indices[i]][1] << "]" << std::endl;
    }
}
Nach dem Login kopieren

Beispiel

Für die Beispielarray timeTable, die Ausgabe wäre:

Subarray at index 0: [1, 500]
Subarray at index 1: [4, 204]
Subarray at index 2: [10, 39]
Nach dem Login kopieren

Vorteile der indirekten Sortierung

Diese indirekte Sortiermethode bietet mehrere Vorteile gegenüber der direkten Sortierung:

  • Speichereffizienz: Es ist kein zusätzlicher Speicherplatz für eine temporäre Kopie von erforderlich das ursprüngliche Array.
  • Leistung: Das Sortieren von Indizes ist im Allgemeinen schneller als das direkte Bearbeiten des ursprünglichen Arrays.
  • Flexibilität: Es ist einfacher, das zu ändern Sortierkriterien, da es nur darum geht, das Sortierprädikat in std::sort zu ändern Aufruf.
  • Wartbarkeit: Der Code ist besser lesbar und wartbar, da komplexe Operationen an mehrdimensionalen Arrays vermieden werden.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales Array nach dem ersten Element jedes Subarrays in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage