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