Необходимо написать программу для сортировки элементов - C#
Формулировка задачи:
Необходимо написать программу, в которой методом быстрой сортировки нужно отсортировать прописные латинские буквы по возрастанию. (необходимо заполнить массив неупорядоченными данными, вывести неупорядоченные данные на экран, отсортировать массив, вывести упорядоченные данные на экран)
Решение задачи: «Необходимо написать программу для сортировки элементов»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
char[] m = {'z', 'b', 't', 'a', 'o'};
Console.Write("До сортировки: ");
foreach (var item in m)
{
Console.Write(item + " ");
}
Console.WriteLine();
QSort(m, 0, m.Length - 1);
Console.Write("После сортировки: ");
foreach (var item in m)
{
Console.Write(item + " ");
}
}
static void QSort<T>(T[] m, int l, int r) where T : IComparable<T>
{
if (l >= r)
return;
int p = Partition(m, l, r);
QSort<T>(m, l, p - 1);
QSort<T>(m, p + 1, r);
}
static int Partition<T>(T[] m, int l, int r) where T : IComparable<T>
{
int i = l;
for (int j = l; j <= r; j++)
{
if (m[j].CompareTo(m[r]) <= 0)
{
T t = m[i];
m[i] = m[j];
m[j] = t;
i++;
}
}
return i - 1;
}
}