Сортировка по алгоритму randomized-quicksort - C#
Формулировка задачи:
Нужен код сортировки массива за алгоритмом сортировки randomized- quicksort. Не могу найти.
Решение задачи: «Сортировка по алгоритму randomized-quicksort»
textual
Листинг программы
- using System;
- class QSort {
- static void swap(int[]arr, int left, int right) {
- int tmp = arr[left];
- arr[left] = arr[right];
- arr[right] = tmp;
- }
- static void qsort(int[] arr, int left, int right) {
- int i, last;
- if ( left >= right )
- return;
- swap(arr, left, (left + right) / 2);
- last = left;
- for ( i = left + 1; i <= right; ++i )
- if ( arr[i] <= arr[left] )
- swap(arr, ++last, i);
- swap(arr, left, last);
- qsort(arr, left, last - 1);
- qsort(arr, last + 1, right);
- }
- public static void Main() {
- int elementsCount = 20;
- int[] arr = new int[elementsCount];
- Random rnd = new Random();
- for ( int i = 0; i < elementsCount; ++i )
- arr[i] = rnd.Next(0, 100);
- Console.WriteLine("Unsorted:");
- foreach ( int n in arr )
- Console.Write("{0,3}", n);
- Console.WriteLine();
- qsort(arr, 0, elementsCount - 1);
- Console.WriteLine("Sorted:");
- foreach ( int n in arr )
- Console.Write("{0,3}", n);
- Console.WriteLine();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д