Untitled
unknown
plain_text
2 years ago
3.2 kB
5
Indexable
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();
}
}
}Editor is loading...
Leave a Comment