Sortierung 2D-Array in C++
Ist es möglich, zu Sortieren eines 2D-Array mit qsort oder std::sort in C++, so dass die Elemente in aufsteigender Reihenfolge beim Lesen von Links nach rechts in jeder Zeile bzw. von oben nach unten in jeder Spalte?
Beispielsweise
13, 14, 15, 16
1, 4, 3, 2
7, 5, 7, 6
9, 10, 11, 12
Wird:
{ 1, 2, 3, 4 }
{ 5, 6, 7, 8 }
{ 9, 10, 11, 12 }
{ 13, 14, 15, 16 }
Ich weiß, Sie können es tun, indem zwei Funktionen Vergleich und dann die erste Sortierung, die jede Zeile dann beim Vergleich der ersten Elemente in jeder Zeile zu etablieren Spalten, aber gibt es einen Weg, es zu tun in einer Funktion selbst?
Wenn es sich um eine NxN-matrix, dann kopiert die Elemente einer vector. Sortieren Sie die Vektor-und dann kopieren Sie jede Zeile wieder array von vector.
Nicht, dass nur die Zeilen zu Sortieren, obwohl? Was ist mit den Spalten?
Kopieren Sie es in ein Vektor-Art, die es als 1D-array (welches es jetzt ist), und kopieren Sie Sie dann zurück zu den 2D-array.
hmmm ... Wenn der gesamte Vektor wird sortiert, dann kopieren Sie es zurück an array Sortieren Sie die Spalten als gut. Zum Beispiel, wenn
Sie können versuchen, auf die Tatsache stützen, dass ein 2D-array ist lediglich die spezielle syntax und es ist angeordnet, die nacheinander im Speicher. Probieren Sie etwas wie:
Nicht, dass nur die Zeilen zu Sortieren, obwohl? Was ist mit den Spalten?
Kopieren Sie es in ein Vektor-Art, die es als 1D-array (welches es jetzt ist), und kopieren Sie Sie dann zurück zu den 2D-array.
hmmm ... Wenn der gesamte Vektor wird sortiert, dann kopieren Sie es zurück an array Sortieren Sie die Spalten als gut. Zum Beispiel, wenn
4
ist an NxN-position dann käme es zu 1*N element nach dem Sortieren und kopieren der array - ( Hier N = 4).Sie können versuchen, auf die Tatsache stützen, dass ein 2D-array ist lediglich die spezielle syntax und es ist angeordnet, die nacheinander im Speicher. Probieren Sie etwas wie:
std::sort(&array2d[0][0], &array2d[0][0] + N*M, std::less<int>());
InformationsquelleAutor 1110101001 | 2013-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. C++ STL Bibliothek ist gebaut mit Trennung der algorithmen und Container. Was Sie miteinander verbindet ist Iteratoren. Raw-pointer ist iterator, daher ist es möglich, zu initialisieren Vektor mit raw-Pointern und dann Sortieren, Vektor, wie üblich.
InformationsquelleAutor 4pie0
C++ Sortierung der 2-D-array ascendingly
InformationsquelleAutor Eslam
In der Theorie sollten Sie in der Lage sein, die Eingabe der 16 zahlen in einem array. Eine for-Schleife verwenden, vielleicht sogar eine verschachtelte, zum Sortieren der zahlen. Dann bei der Ausgabe, die Sie wollen, die aufsteigende zahlen in vier Gruppen von vier?
sehr willkürlich, aber ich bin mir nicht ganz sicher die Frage.
InformationsquelleAutor Macaire Alexander Bell
Zunächst ein 2D-Vektor .
Art jeder Vektor in diesem 2D-Vektor -
Sortieren der ganze Vektor
Code :
InformationsquelleAutor Omid
**Sortierung 2D-array in c++**
InformationsquelleAutor varun