public static int[] babelkowe(int[] arr)
{
int licznik = 0;
do
{
licznik = 0;
for (int i = 0; i < arr.Length - 1; i++)
{
if (arr[i] > arr[i + 1])
{
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
licznik++;
}
}
} while (licznik != 0);
return arr;
}
public static int[] wstawianie(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = i; j > 0; j--)
{
if (arr[j] < arr[j - 1])
{
int tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
return arr;
}
public static int[] wybieranie(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
int[] tmp = min(arr, i); //tmp[0]->wartosc, tmp[1]->indeks
int temp = arr[i];
arr[i] = tmp[0];
arr[tmp[1]] = temp;
}
return arr;
}
static int[] Counting(int[] arr)
{
int maxi = max(arr);
int[] tmp = new int[maxi+1];
int indeks = 0;
for (int i = 0; i < arr.Length; i++) tmp[arr[i]]++;
for (int i = 0; i < tmp.Length; i++)
{
if (tmp[i] != 0)
{
for (int j = 0; j < tmp[i]; j++)
{
arr[indeks] = i;
indeks++;
}
}
}
return arr;
}
public static void heap(int[] arr, int rozmiar)
{
int i, c, root, tmp;
for (i = 1; i <= rozmiar; i++)
{
c = i;
do{
root = (c-1)/2;
if(arr[root] < arr[c]){
tmp = arr[root];
arr[root] = arr[c];
arr[c] = tmp;
}
c = root;
} while(c!=0);
}
}
public static int[] heapsort(int[] arr, int[] tmp, int rozmiar)
{
for (int i = 0; i <= rozmiar; i++)
{
heap(arr, rozmiar - i);
tmp[i] = arr[0];
arr[0] = arr[rozmiar - i];
}
return tmp;
}