static void Main(string[] args) { int[] tab = new int[10] { 1, 4, 14, -3, 22, 17, 102, 44, -90, 8 }; Console.WriteLine("Ktore sortowanie?"); string[] values = Enum.GetNames(typeof(Sortowanie)); foreach (string s in values) { Console.WriteLine(s); } string chosen = Console.ReadLine(); Sortowanie chose = (Sortowanie)Enum.Parse(typeof(Sortowanie), chosen, true); switch ((int)chose) { case 0: Wybieranie wybieranie = new Wybieranie(); wybieranie.Sort(tab); break; case 1: Wstawianie wstawianie = new Wstawianie(); wstawianie.Sort(tab); break; case 2: Babelkowe babelkowe = new Babelkowe(); babelkowe.Sort(tab); break; case 3: Szybkie szybkie = new Szybkie(); szybkie.Sort(tab); break; default: break; } Console.ReadKey(); }
static void Krok5() { var Pracownicy = new List <Pracownik>(); Pracownicy.Add(new Pracownik("Jania", new DateTime(2020, 10, 01), 1000)); Pracownicy.Add(new Pracownik("Jania", new DateTime(2018, 11, 05), 2000)); Pracownicy.Add(new Pracownik("Nowak", new DateTime(2019, 12, 07), 3000)); Pracownicy.Add(new Pracownik("Kowalski", new DateTime(2019, 12, 07), 2500)); Pracownicy.Add(new Pracownik("Nowakowski", new DateTime(2020, 09, 01), 3000)); Pracownicy.Add(new Pracownik("Abacki", new DateTime(2017, 06, 22), 2000)); Pracownicy.Add(new Pracownik("Abacki", new DateTime(2017, 06, 22), 3000)); var listaInt = new List <int> { 3, 7, 9, 1, 0, 2, 8, 6, 9, 3, 4 }; Console.WriteLine("------- Lista pracownikow -------"); Console.WriteLine(string.Join('\n', Pracownicy)); Console.WriteLine($"Lista liczb: {string.Join(',', listaInt)}"); Console.WriteLine("--- Porządkowanie za pomocą własnej metody sortującej" + Environment.NewLine + "zgodnie z naturalnym porządkiem zdefiniowanym w klasie Pracownik ---"); Sortowanie.Sortuj(Pracownicy); Console.WriteLine(string.Join('\n', Pracownicy)); //listaInt.Sortuj(); listaInt.Sortuj(); Console.WriteLine(string.Join(',', listaInt)); Console.WriteLine(); Console.WriteLine("--- Porządkowanie za pomocą własnej metody sortującej" + Environment.NewLine + "zgodnie z porządkiem zdefiniowanym w klasie typu IComparer ---"); Sortowanie.Sortuj(Pracownicy, new WgCzasuZatrudnieniaPotemWgWynagrodzeniaComparer()); Console.WriteLine(string.Join('\n', Pracownicy)); listaInt.Sortuj(new MyIntComparer()); Console.WriteLine(string.Join(',', listaInt)); Console.WriteLine("--- Porządkowanie za pomocą własnej metody sortującej" + Environment.NewLine + "zgodnie z porządkiem zdefiniowanym przez delegat Comparison ---"); Comparison <Pracownik> porwonywacz = (p1, p2) => (p1.Wynagrodzenie != p2.Wynagrodzenie) ? (-1) * p1.Wynagrodzenie.CompareTo(p2.Wynagrodzenie) : p1.CzasZatrudnienia.CompareTo(p2.CzasZatrudnienia); Sortowanie.Sortuj(Pracownicy, porwonywacz); Console.WriteLine(string.Join(',', Pracownicy)); listaInt.Sortuj((x, y) => y - x); Console.WriteLine(string.Join(',', listaInt)); }
public void RunTest() { Console.WriteLine("Sortowanie"); int[] TestowaTablica; int[] PosortowanaTablica; Sortowanie sort = new Sortowanie(); Console.WriteLine("Przygotowane wczesniej dane"); Console.WriteLine("\nSortowanie przez proste wybieranie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.ListaDanych.ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.PrzezProsteWybieranie(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie przez proste wstawianie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.ListaDanych.ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.PrzezProsteWstawianie(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie babelkowe"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.ListaDanych.ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.Babelkowe(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie szybkie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.ListaDanych.ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = new Sortowanie.QuickSort().Sortuj(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); int iloscElementow = 25; Console.WriteLine("Losowe dane (" + iloscElementow + " elementow)"); Console.WriteLine("\nSortowanie przez proste wybieranie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.LosowaLista(iloscElementow).ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.PrzezProsteWybieranie(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie przez proste wstawianie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.LosowaLista(iloscElementow).ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.PrzezProsteWstawianie(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie babelkowe"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.LosowaLista(iloscElementow).ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.Babelkowe(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie szybkie"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.LosowaLista(iloscElementow).ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = new Sortowanie.QuickSort().Sortuj(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); Console.WriteLine("\nSortowanie kubełkowe"); Console.WriteLine("Przed sortowaniem"); TestowaTablica = Dane.LosowaLista(iloscElementow).ToArray(); Program.Wyswietl(TestowaTablica); PosortowanaTablica = sort.Kubelkowe(TestowaTablica); Console.WriteLine("Po posortowaniu"); Program.Wyswietl(PosortowanaTablica); }
private void mvBtn_TablicaPoSortowaniu_Click(object sender, EventArgs e) { int mvLicznikOD; float SumaOD, ŚredniaOD; Random Rnd = new Random(); // deklaracja zmiennej refrencyjnej i utworzenie egzemplarza klasy Sortowanie Sortowanie AlgorytmySortowania = new Sortowanie(); // powtarzanie badania algorytmów dla wszystkich rozmiarów tablic for (int l = 0; l < MaxRozmiarTabl; l++) { // wielokrotne powtarzanie badania kosztów czasowych algorytmu sortowania for (int k = 0; k < PróbaBadawcza; k++) { // wylosowanie wartości elementów Tabl for (int i = 0; i < MaxRozmiarTabl; i++) { Tabl[i] = Rnd.NextDouble() * (GórnaGranicaWartości - DolnaGranicaWartości) + DolnaGranicaWartości; TablPrzedSort[i] = Tabl[i]; } //if (k==0) { // TablPrzedSort = Tabl; // //foreach (double item in TablPrzedSort) // //{ // // Debug.WriteLine(item); // //} //} // wywołanie metody sortowania switch (mvCb_Algorytm.SelectedIndex) { case 0: mvLicznikOD = AlgorytmySortowania.SelectSort(ref Tabl, l + 1); break; case 1: mvLicznikOD = AlgorytmySortowania.InsertionSort(ref Tabl, l + 1); break; case 2: mvLicznikOD = AlgorytmySortowania.ShellSort(ref Tabl, l + 1); break; case 3: mvLicznikOD = AlgorytmySortowania.ShakeSort(ref Tabl, l + 1); break; // Case'y dla kolejnych metod sortowania default: errorProvider1.SetError(mvBtn_TabelarycznaPrezentacja, "UWAGA: jeszcze tej metody nie opracowałem!!!"); return; } // Zapamiętanie LicznikaOD TablicaLOD[k] = mvLicznikOD; } //KosztPamieci[l] = GC.GetTotalMemory(false); // od for (int k = 0; k < PróbaBadawcza; k++) // obliczenie średniej arytmetycznej wykonanych Operacji Dominujących SumaOD = 0.0F; // początkowy stan obliczeń for (int j = 0; j < PróbaBadawcza; j++) { SumaOD = SumaOD + TablicaLOD[j]; } // obliczenie średniej arytmetycznej ŚredniaOD = SumaOD / PróbaBadawcza; /* wpisanie średniej liczby wykonanych operacji dominujących w tablicy WynikiZpomiaru */ WynikiZpomiaru[l] = ŚredniaOD; // obliczenie kosztu czasowego ze wzoru analitycznego switch (mvCb_Algorytm.SelectedIndex) { case 0: WynikiAnalityczne[l] = (l * (l - 1)) / 2; //SWynikiAnalityczne[l] = l * l; break; case 1: WynikiAnalityczne[l] = (l * (l - 1)) / 2; //SWynikiAnalityczne[l] = l * l; break; case 2: WynikiAnalityczne[l] = (float)((float)l * Math.Pow(Math.Log10(l), 2)); break; case 3: WynikiAnalityczne[l] = (l * (l - 1)) / 2; //SWynikiAnalityczne[l] = l * l; break; // Case'y dla kolejnych metod sortowania default: errorProvider1.SetError(mvBtn_TabelarycznaPrezentacja, "UWAGA: prace nad tym algorytmem, który został " + "wybrany jeszcze trwają!!!"); return; } } // wpisanie danych wynikowych do kontrolki DataGridView for (int i = 0; i < MaxRozmiarTabl; i++) { mvDgv_Tablica.Rows.Add(); // wpisujemy wyniki do poszczególnych komórek mvDgv_Tablica.Rows[i].Cells[0].Value = i; mvDgv_Tablica.Rows[i].Cells[1].Value = String.Format("{0, 8:F3}", Tabl[i]); // naprzemienna zmiana tła wierszy w kontrolce DataGridView if ((i % 2) == 0) { mvDgv_Tablica.Rows[i].Cells[0].Style.BackColor = Color.LightGray; mvDgv_Tablica.Rows[i].Cells[1].Style.BackColor = Color.LightGray; } else { mvDgv_Tablica.Rows[i].Cells[0].Style.BackColor = Color.White; mvDgv_Tablica.Rows[i].Cells[1].Style.BackColor = Color.White; } // wycentrowanie zapisów w poszczególnych komórkach formatowanego wierszy mvDgv_Tablica.Rows[i].Cells[0].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; mvDgv_Tablica.Rows[i].Cells[1].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; } // odsłonięcie kontrolki DataGridView mvDgv_Tablica.Visible = true; // wyświetlenie okna dialogowego z potwierdzeniem wybranej metody sortowania MessageBox.Show("Przeprowadzono sortowanie algorytmem: " + mvCb_Algorytm.SelectedIndex); // ustawienie stanu braku aktywności dla przycisku poleceń mvBtn_TablicaPoSortowaniu.Enabled = false; // uaktywnienie przycisków funkcjonalnych mvBtn_TabelarycznaPrezentacja.Enabled = true; mvBtn_GraficznaPrezentacja.Enabled = true; mvBtn_Resetuj.Enabled = true; mvBtn_Demo.Enabled = true; mvBtn_TablicaPrzedSortowaniem.Enabled = true; }