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; }