Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Algorytm do wykonania tego zadania został przedstawiony na prezentacji.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define n 4
- char* tab;
- char znak;
- clock_t start, koniec, czas;
- void zamien(char* a, char* b)
- {
- char tmp = *a;
- *a = *b;
- *b = tmp;
- }
- void wyswietl()
- {
- int i;
- for (i = 1; i <= n; ++i)
- printf("%c", tab[i]);
- puts("");
- }
- void wypis(int x)
- {
- int y;
- if (x == 1)
- {
- wyswietl();
- return;
- }
- for (y = 1; y <= x; ++y)
- {
- zamien(&tab[y], &tab[x]);
- wypis(x - 1);
- zamien(&tab[y], &tab[x]);
- }
- }
- void bwypis(int x)
- {
- int y;
- if (x == 1) {
- return;
- }
- for (y = 1; y <= x; ++y)
- {
- zamien(&tab[y], &tab[x]);
- bwypis(x - 1);
- zamien(&tab[y], &tab[x]);
- }
- }
- int main()
- {
- tab = malloc((n + 1)*sizeof(char));
- int i;
- for (i = 1; i <= n; ++i)
- tab[i] = i-1+'A';
- printf("Czy wyswietlic wyniki na ekranie? (t - tak, inny znak - nie): ");
- scanf("%c",&znak);
- printf("Permutacje zbioru {A..%c}:\n",n-1+'A');
- if (znak == 't' || znak == 'T')
- {
- start = clock();
- wypis(n);
- koniec = clock();
- czas = koniec - start;
- }
- else
- {
- start = clock();
- bwypis(n);
- koniec = clock();
- czas = koniec - start;
- }
- free(tab);
- printf("Czas wykonania algorytmu: %d ms.\n",czas);
- system ("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement