Untitled
namespace Zadanie { public class Program { private int liczba_rezerwacji_ram; private int max_liczba_rezerwacji_ram; public Program() { liczba_rezerwacji_ram = 0; max_liczba_rezerwacji_ram = 0; } public int GetLiczbęRezerwacjiRam() { return liczba_rezerwacji_ram; } public int GetMaxLiczbęRezerwacjiRAM() { return max_liczba_rezerwacji_ram; } private void QuickSort(int[] tab, int lewy, int prawy) { if (lewy < prawy) { int pivot = Dzielenie(tab, lewy, prawy); QuickSort(tab, lewy, pivot); QuickSort(tab, pivot + 1, prawy); } } private int Dzielenie(int[] tab, int lewy, int prawy) { int pivot = tab[lewy]; int i = lewy; int j = prawy; while (true) { while (tab[i] < pivot) { i++; liczba_rezerwacji_ram++; } while (tab[j] > pivot) { j--; liczba_rezerwacji_ram++; } if (i < j) { Zamiana(tab, i, j); i++; j--; } else { if (j > max_liczba_rezerwacji_ram) { max_liczba_rezerwacji_ram = j; } return j; } } } private void Zamiana(int[] tab, int i, int j) { int x = tab[i]; tab[i] = tab[j]; tab[j] = x; } public static void Main(string[] args) { Console.Write("Podaj rozmiar tablicy: "); int n = int.Parse(Console.ReadLine()); int[] tab = new int[n]; // Generowanie losowej tablicy Random random = new Random(); for (int i = 0; i < n; i++) { tab[i] = random.Next(10); // zakres od 0 do 99 (możesz dostosować) } Console.WriteLine("Tablica przed sortowaniem:"); foreach (int x in tab) { Console.Write(" " + x); } Console.WriteLine(); Program program = new Program(); program.QuickSort(tab, 0, tab.Length - 1); Console.WriteLine(); Console.WriteLine("Tablica po sortowaniu:"); foreach (int x in tab) { Console.Write(" " + x); } Console.WriteLine("\nMaksymalna zajętość pamięci: " + program.GetMaxLiczbęRezerwacjiRAM()); Console.WriteLine("Liczba rezerwacji pamięci: " + program.GetLiczbęRezerwacjiRam()); Console.ReadLine(); } } }
Leave a Comment