Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ctime>
- #include <iostream>
- #define MAX 50 //zmieniamy z zależności od wielkości tablicy
- #include <string>
- #include <cstdlib>
- #include <algorithm>
- using namespace std;
- void show(int *tab)
- {
- for(int i = 0; i < MAX; i++)
- {
- cout << tab[i] << "||";
- }
- }
- void sort_reverse(int *tab)
- {
- sort(tab, tab + MAX, greater< int >()); // sortowanie malejące (na potrzeby testów)
- }
- void sort_increase(int * tab)
- {
- sort(tab,tab + MAX); //sortowanie rosnące (na potrzeby testów)
- }
- int main()
- {
- srand(time(NULL));
- int tab[MAX], flag;
- for (int i = 0; i < MAX; i++)
- {
- tab[i] = rand() % (4*MAX-1)+ 0; //wypełniamy tablicę losowymi liczbami
- cout << tab[i] << " ";
- if ((i + 1) % 5 == 0)
- {
- cout << endl;
- }
- }
- //sort_increase(tab); //funkcja sortujaca rosnaca, na potrzeby testow
- //sort_reverse(tab); //funkcjo sortuajca malejaco, na potrzeby testow
- //bool is_sorted = false; //sprawdzanie, czy tablica jest posortowana (nie jest)
- int z=0;
- int counter_swap = 0; //licznik przestawień
- int counter_if = 0; //licznik porównań
- int tymczasowa, j, i;
- for (i = 1; i < MAX; i++)
- {
- tymczasowa = tab[i]; // przechowanie elementu tablicy z zmiennej pomocniczej
- for (j = i-1; j >= 0; j--)
- {
- counter_if++;
- if (tymczasowa < tab[j]){ // zamiana miejsc
- tab[j+1] = tab[j];
- counter_swap++;
- }
- else
- break;
- }
- tab[j+1] = tymczasowa;
- }
- cout << "Zamiany: "<<counter_swap<< endl;
- cout << "Porownania: "<<counter_if << endl;
- show(tab);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement