Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
4.0 kB
1
Indexable
using System;

public class SortowanieBąbelkowe
{
    public void sortowanie_z_wybieraniem(int[] tab)
    {
        int pośrednik;
        int i;
        int j;

        int liczba_iteracji;

        liczba_iteracji = 0;

        if(tab != null && tab.Length > 1)
        {
            for(i = 0; i < tab.Length - 1; i++)
            {
                for(j = i + 1; j < tab.Length; j++)
                {
                    if(tab[i] > tab[j])
                    {
                        pośrednik = tab[i];
                        tab[i] = tab[j];
                        tab[j] = pośrednik;
                    }//end if

                    liczba_iteracji++;

                }//next j
            }//next i
        }//end if

        Console.WriteLine("Liczba iteracji ...... " + liczba_iteracji);

    }//Koniec sortowania z wybieraniem

    public void sortuj2(int[] tab)
    {
        int pośrednik;
        int j;
        bool czy_jest_zmiana;

        int liczba_iteracji;

        liczba_iteracji = 0;

        if(tab != null && tab.Length > 1)
        {
            do
            {
                czy_jest_zmiana = false;

                for(j = 0; j < tab.Length - 1; j++)
                {
                    if(tab[j] > tab[j+1])
                    {
                        pośrednik = tab[j];
                        tab[j] = tab[j+1];
                        tab[j+1] = pośrednik;
                        czy_jest_zmiana = true;
                    }//koniec zamiany

                    liczba_iteracji++;

                }//next j

            }while(czy_jest_zmiana == true);

        }//end if

        Console.WriteLine("Liczba iteracji ...... " + liczba_iteracji);
    }//Koniec sortowania bąbelkowego wersji 2

    public void sortuj(int[] tab)
    {
        int pośrednik;
        int i;
        int j;

        int liczba_iteracji;

        liczba_iteracji = 0;

        if(tab != null && tab.Length > 1)
        {
            for(i = 0; i < tab.Length; i++)
            {
                for(j = 0; j < tab.Length - 1; j++)
                {
                    if(tab[j] > tab[j+1])
                    {
                        pośrednik = tab[j];
                        tab[j] = tab[j+1];
                        tab[j+1] = pośrednik;
                    }//koniec zamiany

                    liczba_iteracji++;

                }//next j

            }//next i

        }//end if

        Console.WriteLine("Liczba iteracji ...... " + liczba_iteracji);

    }//Koniec metody

    public static void Main(string[] arghhh)
    {
        Random generator;
        int liczba_elementów;
        int[] tab;
        int i;
        SortowanieBąbelkowe obiekt_sortujący;

        obiekt_sortujący = new SortowanieBąbelkowe();
        generator = new Random();

        do{
            Console.Write("Liczba elementów tablicy: ");
            liczba_elementów = int.Parse(Console.ReadLine());
        }while(liczba_elementów < 1);

        tab = new int[liczba_elementów];

        for(i = 0; i < liczba_elementów; i++)
        {
            tab[i] = generator.Next(liczba_elementów * 2);
        }//next i

        obiekt_sortujący.PokażTablicę(tab);

        obiekt_sortujący.sortowanie_z_wybieraniem(tab);

        obiekt_sortujący.PokażTablicę(tab);

    }//Koniec Main

    public void PokażTablicę(int[] tab)
    {
        int i;

        if(tab == null)
        {

            Console.WriteLine("Tablica nie istnieje!");

        }else
        {
            if(tab.Length == 0)
            {
                Console.WriteLine("Tablica jest pusta!");
            }else
            {
                for(i = 0; i < tab.Length; i++)
                {
                    Console.WriteLine("tab[" + i + "] = " + tab[i]);
                }//next i
            }//end if
        }//end if

        Console.WriteLine("-------------------------------");

    }//Koniec PokażTablicę

}//Koniec klasy