Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using static System.Console;
- namespace Sort
- {
- class Program
- {
- static void quickSort(ref int[] a, int l, int r)
- {
- int temp;
- int x = a[l + (r - l) / 2];
- //запись эквивалентна (l+r)/2,
- //но не вызввает переполнения на больших данных
- int i = l;
- int j = r;
- //код в while обычно выносят в процедуру particle
- while (i <= j)
- {
- 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--;
- }
- }
- if (i < r)
- quickSort(ref a, i, r);
- if (l < j)
- quickSort(ref a, l, j);
- }
- static void Main()
- {
- Random rand = new Random();
- // Считываем размер массива,
- // который необходимо отсортировать
- int h = 1;
- //size = int.Parse(Console.ReadLine());
- // Динамически выделяем память под
- // хранение массива размера size
- //считываем строку
- //string str = Console.ReadLine();
- //разбиваем по пробелам
- //string[] mas = str.Split(' ');
- Write("Исходный массив: ");
- int[] a = new int[rand.Next(1, 10)];
- for (int i = 0; i < a.Length; i++)
- {
- a[i] = rand.Next(1, 101);
- Write(a[i] + " ");
- }
- WriteLine('\n');
- quickSort(ref a, 0, a.Length - h);
- // Выводим отсортированный массив
- Write("Полученный массив: ");
- for (int i = 0; i < a.Length; i++)
- Write(a[i] + " ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement