Быстрая сортировка массива - C#
Формулировка задачи:
Не могу понять как исправить метод сортировки. Задание: быстрым методом сортировки отсортировать по возрастанию строчные латинские буквы.
public static void QuickSort(char[] A, int l, int h)
{
char temp;
var x = A[l = (h - l) / 2];
int i = l;
int j = h;
do
{
while (A[i] < x) i++;
while (A[j] > x) j--;
if (i <= j)
{
temp = A[i];
A[i] = A[j];
A[j] = temp;
i++;
j--;
}
} while (i <= j);
if (i < h)
QuickSort(A, i, h);
if (i < j)
QuickSort(A, l, j);
}
static void Main(string[] args)
{
char[] A;
Random r = new Random();
Console.Write("Введите размерность массива ");
int n = int.Parse(Console.ReadLine());
A = new char[n];
for (int o = 0; o < n; o++)
{
A[o] = Convert.ToChar(r.Next(97, 122));
}
Console.WriteLine("\nДо сортировки ");
for (int z = 0; z < A.Length; z++)
{
Console.Write(A[z] + " ");
}
QuickSort(A, A[0],A[n-1]);
Console.WriteLine("\nПосле сортировки ");
for (int k = 0; k < A.Length; k++)
{
Console.Write("{0} ", A[k]);
}
Console.ReadLine();
}Решение задачи: «Быстрая сортировка массива»
textual
Листинг программы
QuickSort (A, 0, A.Length);