Быстрая сортировка массива - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д