Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // babelky.cpp: Określa punkt wejścia dla aplikacji konsoli.
- //
- #define N 10
- #include "stdafx.h"
- #include <conio.h>
- #include <time.h>
- #include <stdlib.h>
- void SortujBabelkowo(int *tab, const int elementy)
- {
- bool modyfikacja;
- int temp, licznik = 0;
- for (int i = 0; i < elementy; i++) // i -> ilosc calkowitych przebeigow
- {
- modyfikacja = false;
- for (int j = 0; j < elementy - 1 - i; j++) // j -> ilosc operacji sortowania
- {
- if (tab[j] > tab[j + 1]) // jezeli ma byc kolejnosc malejaca: '<'
- {
- temp = tab[j];
- tab[j] = tab[j + 1];
- tab[j + 1] = temp;
- modyfikacja = true;
- licznik++;
- }
- }
- if (modyfikacja == false) break;
- }
- printf("licznik: %d\n", licznik);
- }
- void SortujWstawianie(int *tab, const int elementy)
- {
- int temp, j;
- for (int i = 0; i < elementy; i++) // i -> ilosc calych przebiegow
- {
- temp = tab[i];
- for (j = i; j > 0; j--) // j -> porownywanie z wczesniej wybranymi liczbami
- {
- if (temp > tab[j - 1]) break; // jesli ma byc kolejnosc malejaca: '<'
- tab[j] = tab[j - 1];
- }
- tab[j] = temp;
- }
- }
- void SortujWybieranie(int *tab, const int elementy)
- {
- int temp, k;
- for (int i = 0; i < elementy; i++)
- {
- temp = i;
- for (int j = (i + 1); j < elementy; j++)
- {
- if (tab[temp] > tab[j])
- {
- temp = j;
- }
- }
- k = tab[i];
- tab[i] = tab[temp];
- tab[temp] = k;
- }
- }
- void SortujKoktajlowe(int *tab, const int elementy)
- {
- int temp;
- bool mu;
- for (int i = 0; i < elementy; i++)
- {
- mu = false;
- for (int j = i + 1; j < elementy - i; j++)
- {
- if (tab[j] < tab[j - 1])
- {
- temp = tab[j];
- tab[j] = tab[j - 1];
- tab[j - 1] = temp;
- mu = true;
- }
- }
- for (int j = elementy - 1 - i; j >= i + 1; j--)
- {
- if (tab[j] < tab[j - 1])
- {
- temp = tab[j];
- tab[j] = tab[j - 1];
- tab[j - 1] = temp;
- mu = true;
- }
- }
- if (mu == false) break;
- }
- }
- void SortujQuick(int *tab, const int lewy, const int prawy)
- {
- int l, p, v, temp;
- l = lewy;
- p = prawy;
- v = tab[(l + p) / 2];
- do
- {
- while (tab[l] > v)
- {
- l++;
- }
- while (v > tab[p])
- {
- p--;
- }
- if (l <= p)
- {
- temp = tab[l];
- tab[l] = tab[p];
- tab[p] = temp;
- l++;
- p--;
- }
- } while (l <= p);
- if (lewy < p) {
- SortujQuick(tab, lewy, p);
- }
- if (l < prawy) {
- SortujQuick(tab, l, prawy);
- }
- }
- void losuj(int *tab, const int elementy)
- {
- for (int i = 0; i < elementy; i++)
- {
- tab[i] = rand() % 101;
- }
- }
- void wyswietl(int *tab, const int elementy)
- {
- for (int i = 0; i < elementy; i++)
- {
- printf("%d\n", tab[i]);
- }
- }
- int main()
- {
- srand(time(NULL));
- int tab[N];
- losuj(tab, N);
- wyswietl(tab, N);
- printf("\n");
- SortujBabelkowo(tab, N);
- //SortujWstawianie(tab, N);
- //SortujWybieranie(tab, N);
- //SortujKoktajlowe(tab, N);
- //SortujQuick(tab, 0, N - 1);
- wyswietl(tab, N);
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement