#include #include #include using namespace std; inline void swap(int &a, int &b) { int t ; t=a; a=b; b=t; } int wybieranie(int tab[], int rozmiar, long int &porownan, long int &zamiany, int odwrot){ int temp; int max, mediana; for(int i=1;itab[j]) max=j;} else {if(tab[max]>tab[j]) max=j;} porownan++; } if(max!=i) {swap(tab[i],tab[max]); zamiany++;} ; if(i == (rozmiar / 2)) mediana=tab[i]; }; return mediana ; }; int wstawianie(int a[], int rozmiar, long int &porownan, long int &zamiany, int odwrot) { int t, j , mediana; for(int i = 1; i < rozmiar - 1; i++) { t = i; for (j = i + 1; j < rozmiar; j++){ if(odwrot==1) {if (a[j] > a[t]) {t = j;}} else { if (a[j] < a[t]) {t = j;}} porownan++; } swap(a[t],a[i]); zamiany++; if(i == (rozmiar / 2)) mediana = a[i] ; } return mediana ; } int babelki(int a[], int rozmiar, long int &porownan, long int &zamiany, int odwrot) { int temp, mediana ; for(int i=1;i a[j]) {swap(a[i],a[j]); zamiany++;};} porownan++; } if(i == (mediana / 2)) mediana = a[i] ; } return mediana ; }; void quicksort(int a[], int lewe, int prawe, long int &porownan, long int &zamiany, int odwrot, int rozmiar) { int mediana ; if(lewe < prawe ) { int m=lewe ; for(int i=lewe+1;i<=prawe;i++) { if(a[i] 0) && (d[k] < x)) { porownan++; d[j] = d[k]; j = k; k = j / 2; } d[j] = x; zamiany++; } // Rozbieramy kopiec for(i = N; i > 0; i--) { swap(d[1], d[i]); j = 1; k = 2; while(k < i) { porownan+=2; if((k + 1 < i) && (d[k + 1] > d[k])) {m = k + 1;} else m = k; if(d[m] <= d[j]) break; swap(d[j], d[m]); zamiany++; j = m; k = j + j; } if(i == (N / 2) ) mediana = d[i] ; } return mediana ; } void wypisz(int t[],int rozmiar) { // system("cls"); cout << "\n\n\n\tTablica:\n\t\t" ; for(int i=1;i> dd ; switch(dd) { case 1: generuj(tablica,rozmiar); break; case 2: system("cls"); wypisz(tablica,rozmiar); system("Pause"); break; case 3: system("cls"); licznik = 0; zamian = 0 ; cout << "Przed: ";wypisz(tablica,rozmiar); czas1=getTime() ; // za czas1 zostanie wstawiony czas w milisekundach od momentu wlaczenia programu // tutaj wstawic algorytm mediana=wstawianie(tablica,rozmiar, licznik, zamian, kolej); czas2=getTime() - czas1; cout << "Po: ";wypisz(tablica,rozmiar); cout << "licznik porownan: " << licznik << ", zamian: " << zamian << ", czas: " << czas2 << ", mediana: " << mediana <