Heim >Backend-Entwicklung >C++ >Wie sortiere ich ein Array von Subarrays nach dem ersten Element in C?

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-23 00:18:12927Durchsuche

How to Sort an Array of Subarrays by the First Element in C  ?

Sortieren von Arrays nach dem ersten Element in Subarrays in C

Ursprüngliche Arrays bestehen aus Subarrays mit zwei Elementen: z. B. [[4, 204] , [10, 39], [1, 500]]. Das Ziel besteht darin, diese Arrays basierend auf dem ersten Element jedes Subarrays zu sortieren: [[1, 500], [4, 204], [10, 39]].

Sortiertechnik

Interessanterweise ist es nicht notwendig, das ursprüngliche Array selbst zu manipulieren. Stattdessen besteht ein besserer Ansatz darin, ein Array von Indizes zu sortieren, die auf die Unterarrays innerhalb des ursprünglichen Arrays verweisen, und dann die sortierten Indizes zu verwenden, um auf die sortierten Elemente zuzugreifen.

Vorteile dieser Technik

Das Sortieren von Indizes anstelle des ursprünglichen Arrays ist vorteilhaft, wenn:

  • Das ursprüngliche Array Elemente sind groß.
  • Die ursprüngliche Reihenfolge des Arrays muss beibehalten werden.
  • Das ursprüngliche Array ist in einem Sortieralgorithmus umständlich oder gar nicht effizient zu manipulieren.

Beispielimplementierung

Betrachten Sie das folgende Beispiel Code:

#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, [&amp;](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";
    }
}

In diesem Beispiel:

  • index ist ein Array von Indizes, initialisiert mit den Werten 0, 1 und 2.
  • timeTable ist das Original Array von Subarrays.
  • std::sort wird verwendet, um den Index basierend auf dem ersten Element des entsprechenden Subarrays in zu sortieren timeTable.
  • Nach dem Sortieren der Indizes kann mit dem sortierten Index-Array auf die sortierten Subarrays zugegriffen werden, wie in der for-Schleife gezeigt.

Hinweis: Dies Die Sortiertechnik ist nicht nur auf Arrays von Subarrays anwendbar, sondern auch auf Szenarien, in denen mehrere Arrays basierend auf Daten von einem der Arrays parallel sortiert werden müssen Arrays.

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

Stellungnahme:
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