using System; // Реализация АТД Очередь public class Queue { private T[] elements; private int front, rear, size, capacity; public Queue(int capacity) { this.capacity = capacity; elements = new T[capacity]; front = size = 0; rear = capacity - 1; } public void Enqueue(T item) { if (size == capacity) throw new Exception("Queue is full"); rear = (rear + 1) % capacity; elements[rear] = item; size++; } public T Dequeue() { if (size == 0) throw new Exception("Queue is empty"); T item = elements[front]; front = (front + 1) % capacity; size--; return item; } // Реализация СД Массив public static void SelectionSort(int[] array) { for (int i = 0; i < array.Length - 1; i++) { int minIndex = i; for (int j = i + 1; j < array.Length; j++) { if (array[j] < array[minIndex]) { minIndex = j; } } if (minIndex != i) { int temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } } } // Быстрая сортировка public static void QuickSort(int[] array, int left, int right) { if (left < right) { int pivot = Partition(array, left, right); QuickSort(array, left, pivot - 1); QuickSort(array, pivot + 1, right); } } private static int Partition(int[] array, int left, int right) { int pivot = array[right]; int i = left - 1; for (int j = left; j < right; j++) { if (array[j] < pivot) { i++; int temp = array[i]; array[i] = array[j]; array[j] = temp; } } int temp1 = array[i + 1]; array[i + 1] = array[right]; array[right] = temp1; return i + 1; } public static void Main() { int[] array = { 64, 34, 25, 12, 22, 11, 90 }; // Сортировка выбором Console.WriteLine("Before selection sort:"); foreach (var item in array) Console.Write(item + " "); SelectionSort(array); Console.WriteLine("\n\nAfter selection sort:"); foreach (var item in array) Console.Write(item + " "); // Быстрая сортировка Console.WriteLine("\n\nBefore quick sort:"); foreach (var item in array) Console.Write(item + " "); QuickSort(array, 0, array.Length - 1); Console.WriteLine("\n\nAfter quick sort:"); foreach (var item in array) Console.Write(item + " "); // Использование Очереди Queue queue = new Queue(5); queue.Enqueue(10); queue.Enqueue(20); queue.Dequeue(); } }