Sorry für den vagen Titel, aber ich werde versuchen und beschreiben, was mein Problem so gut wie ich kann unten.C# - Sortierung mehrerer String-Arrays mit Quicksort
Grundsätzlich habe ich 5 String-Arrays, die alle Daten für den gleichen Index in den anderen Arrays halten. Beispiel: Element 5 in Array 1 entspricht Element 5 in den Arrays 2, 3, 4 und 5.
Was ich getan habe, ist das Quicksort algorthim, um Array 1 in alphabetischer Reihenfolge zu sortieren. Das Problem besteht darin, dass beim Sortieren des Arrays die Elemente in den anderen Arrays nicht mehr übereinstimmen, da die anderen Arrays nicht sortiert wurden.
Was ich brauche, ist eine Möglichkeit, die gleichen Elemente in den anderen vier Arrays umzuschalten, wie es bei Array 1 der Fall war. Wenn beispielsweise Element 2 in Array 1 gegen Element 55 ausgetauscht wird, dann Element 2 im anderen 4 Arrays müssen in ihrem Array in das Element 55 und umgekehrt getauscht werden.
Das Endziel besteht darin, alle Daten in einem bestimmten Element über alle 5 Arrays hinweg anzuzeigen.
Im Folgenden werde ich die quicksort Algorithmus hinzugefügt haben, ich verwende und hinzugefügt 3 Beispiel Arrays, die Sortierung müssen:
string[] array1 = {"z","y","x","a"};
string[] array2 = {"26","25","24","1"};
string[] array3 = { "black","yellow","white","red" };
// The first 2 arrays should clarify my point further.
// I use Quicksort to sort array 1
public static void QuicksortSTRING(IComparable[] elements, int left, int right)
{
int i = left, j = right;
IComparable pivot = elements[(left + right)/2];
while (i <= j)
{
while (elements[i].CompareTo(pivot) < 0)
{
i++;
}
while (elements[j].CompareTo(pivot) > 0)
{
j--;
}
if (i <= j)
{
// Swap
IComparable tmp = elements[i];
elements[i] = elements[j];
elements[j] = tmp;
i++;
j--;
}
}
// Recursive calls
if (left < j)
{
QuicksortSTRING(elements, left, j);
}
if (i < right)
{
QuicksortSTRING(elements, i, right);
}
}
Wenn Sie andere Informationen müssen nur fragen.
Alle Arrays werden die gleiche Länge haben? – Mairaj
@MairajAhmad Ja, alle Arrays sind genau gleich lang. – TF7
Müssen Sie aus irgendeinem Grund Ihren eigenen Quicksort schreiben? Oder dürfen Sie die .Net-Sortierung verwenden? –