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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-17 01:05:03285Durchsuche

How to Sort an Array of Arrays by the First Element of Each Subarray in C  ?

Sortieren eines Arrays von Arrays nach dem ersten Element im Unterarray in C

Bei einem gegebenen Array von Arrays besteht die Aufgabe darin, sie basierend auf zu sortieren das erste Element jedes Subarrays. Betrachten Sie ein Array wie [[4, 204], [10, 39], [1, 500]]. Nach der Sortierung sollte es [[1, 500], [4, 204], [10, 39] sein.

Ansatz mit Indexsortierung:

Stattdessen Neben der direkten Sortierung des Arrays besteht eine effizientere Methode darin, ein Array von Indizes zu sortieren, die auf die Unterarrays verweisen. Dadurch entfällt die Notwendigkeit einer komplexen Manipulation des ursprünglichen Arrays in der Sortierfunktion.

Hier ist eine Beispielcode-Implementierung:

#include <algorithm>
#include <iostream>

int main() {
  int index[3] = {0, 1, 2};
  int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}};

  // Sort the indices based on the first item of each subarray
  std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; });

  // Iterate over the sorted indices and access the corresponding subarrays
  for (int i = 0; i < 3; ++i) {
    std::cout << "The index is " << index[i] << ". The data at this index is [";
    std::cout << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n";
  }

  return 0;
}

In diesem Snippet erstellen wir ein Index-Array und sortieren es nach ein benutzerdefiniertes Sortierkriterium, das die ersten Elemente der Subarrays bei den Indizes n1 und n2 vergleicht. Nach dem Sortieren können wir über das neu geordnete Indexarray auf die sortierten Unterarrays zugreifen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Arrays nach dem ersten Element jedes Subarrays 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