Beispiel #1
0
        private void button5_Click(object sender, EventArgs e)
        {
            string[] wartosci = Par1_TB.Text.Split(' ');
            int[]    kolekcja = new int[wartosci.Length];
            for (int i = 0; i < wartosci.Length; i++)
            {
                kolekcja[i] = int.Parse(wartosci[i]);
            }

            porownajLiczby por = (int x, int y) => {
                if (x > y)
                {
                    return(1);
                }
                else if (y > x)
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }
            };

            sortuj(kolekcja, por);

            wynik_LB.Text = null;
            foreach (int item in kolekcja)
            {
                wynik_LB.Text += item.ToString() + " ";
            }
        }
Beispiel #2
0
        private void button9_Click(object sender, EventArgs e)
        {
            string[] wyrazenie = Par1_TB.Text.Split(' ');
            int[]    kolekcja  = new int[wyrazenie.Length];

            for (int i = 0; i < wyrazenie.Length; i++)
            {
                kolekcja[i] = int.Parse(wyrazenie[i]);
            }
            int[] podzielonaKolekcja = new int[wyrazenie.Length];
            for (int i = 0, j = wyrazenie.Length - 1, m = 0; m < wyrazenie.Length; m++)
            {
                if (kolekcja[m] % 2 == 0)
                {
                    podzielonaKolekcja[i] = kolekcja[m];
                    i++;
                }
                else
                {
                    podzielonaKolekcja[j] = kolekcja[m];
                    j--;
                }
            }

            porownajLiczby por = (int x, int y) => {
                if (x > y)
                {
                    return(-1);
                }
                else if (y > x)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            };
            int indexParzystej = 0;

            for (int i = 0; i < podzielonaKolekcja.Length; i++)
            {
                if (podzielonaKolekcja[i] % 2 == 0)
                {
                    indexParzystej = i;
                }
            }

            sortuj(podzielonaKolekcja, por, 0, indexParzystej);
            sortuj(podzielonaKolekcja, por, indexParzystej + 1, podzielonaKolekcja.Length - 1);
            wynik_LB.Text = null;
            foreach (int item in podzielonaKolekcja)
            {
                wynik_LB.Text += item.ToString() + " ";
            }
        }
Beispiel #3
0
        public void sortuj(int[] tablica, porownajLiczby delegat, int startIndex, int endIndex)
        {
            int tmp;

            do
            {
                for (int i = startIndex; i < endIndex; i++)
                {
                    if (delegat(tablica[i], tablica[i + 1]) < 0)
                    {
                        tmp            = tablica[i];
                        tablica[i]     = tablica[i + 1];
                        tablica[i + 1] = tmp;
                    }
                }
                endIndex--;
            } while (endIndex > startIndex);
        }
Beispiel #4
0
        public void sortuj(int[] tablica, porownajLiczby delegat)
        {
            int tmp;
            int n = tablica.Length;

            do
            {
                for (int i = 0; i < n - 1; i++)
                {
                    if (delegat(tablica[i], tablica[i + 1]) < 0)
                    {
                        tmp            = tablica[i];
                        tablica[i]     = tablica[i + 1];
                        tablica[i + 1] = tmp;
                    }
                }
                n--;
            } while (n > 1);
        }