Извините за неопределенное название, но я постараюсь описать, что моя проблема, насколько я могу ниже.C# - Сортировка нескольких массивов String с помощью Quicksort
В основном у меня есть 5 строковых массивов, которые содержат данные, относящиеся к одному и тому же индексу в других массивах. Например, элемент 5 в массиве 1 соответствует элементу 5 в массивах 2, 3, 4 и 5.
Что я сделал, используется Quicksort algorthim для сортировки массива 1 в алфавитном порядке. Проблема в том, что когда массив сортируется, больше не выполняются элементы в других массивах, поскольку другие массивы не отсортированы.
Что мне нужно, так это обменять те же элементы вокруг других 4-х массивов, как и до массива 1. Например, если элемент 2 в массиве 1 заменен на элемент 55, тогда элемент 2 в другом 4 массива должны быть заменены на элемент 55 в их массиве и наоборот.
Конечная цель - отобразить все данные в определенном элементе по всем 5 массивам.
Ниже я добавил алгоритм QuickSort я использую и добавил 3 примера массивов, которые требуют сортировки:
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);
}
}
Если вам нужна любая другая информация просто спросить.
Все массивы будут иметь такую же длину? – Mairaj
@MairajAhmad Да, все массивы точно такой же длины. – TF7
Вы по какой-то причине хотите написать свой собственный Quicksort? Или вам разрешено использовать сортировку .Net? –