Ocena użytkownikóww: ***** / 3
Nadesłany przez Mattioo, 09 lutego 2014 02:49
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
bubblesort.cpp:
//Sortowanie babelkowe
//www.algorytm.org
#include <iostream>
// BIBLIOTEKI NIEZBEDNE DO WYPELNIENIA TABLICY PSEUDOLOSOWYMI LICZBAMI
#include <cstdlib>
#include <ctime>
using namespace std;
// DEKLARACJA FUNKCJI SORTUJACEJ TABLICE PRZYJMUJACA PARAMETRY TAKIE JAK TABLICA I LICZBA JEJ ELEMENTOW
void sort(int tab[], int w);
int main()
{
// ZDEFINIOWANIE STALEJ 'W' ORAZ TABLICY O WIELKOSCI 'W'
const int w = 10;
int tab[w];
// WYWOLANIE FUNKCJI ZAPEWNIAJACEJ LOSOWANIE ROZNYCH WARTOSCI PRZY KAZDYM URUCHOMIENIU PROGRAMU
srand(time(NULL));
// WYPPELNIENIE TABLICY WYLOSOWANYMI WARTOSCIAMI Z PRZEDZIALU OD 1 DO 100
for(int i = 0; i < w; i++)
tab[i] = 1+rand()%100;
// WYWOLANIE ZDEFINIOWANEJ PRZEZ NAS FUNKCJI 'SORT' SORTUJACEJ ELEMENTY TABLICY
sort(tab,w);
// WYPISANIE POSORTOWANEJ JUZ TABLICY NA EKRAN
for(int i = 0; i < w; i++)
cout << tab[i] << endl;
return 0;
}
// DEFINICJA FUNKCJI SORTUJACEJ TABLICE PRZYJMUJACA PARAMETRY TAKIE JAK TABLICA I LICZBA JEJ ELEMENTOW
void sort(int tab[], int w)
{
// PETLA POWTARZAJACA SIE O 1 MNIEJ RAZY NIZ WIELKOSC TABLICY
for(int i = 0; i < (w-1); i++)
{
// PETLA KTORA W PIERWSZYM OBIEGU ZEWNETRZNEJ PETLI WYKONUJE SIE O 1 MNIEJ RAZY NIZ WIELKOSC TABLICY A W KOLEJNYCH O 1 MNIEJ OD POPRZEDNIEJ LICZBY KROKOW
for(int j = (w-1); j >= 1+i; j--)
{
// SPRAWDZAMY OD TYLU TABLICY CZY ELEMENT AKTUALNY JEST MNIEJSZY NIZ ELEMENT GO POPRZEDZAJACY, JESLI TAK ZAMIENIAMY JE MIEJSCAMI I POROWNUJEMY GO ZNOW Z POPRZEDZAJACYM GO ELEMENTEM AZ DOJDZIEMY DO POCZATKU TABLICY, W PRZECIWNYM WYPADKU PRZECHODZIMY NA POPRZEDZAJACY GO ELEMENT I ROBIMY DOKLADNIE TO SAMO
if(tab[j] < tab[j-1])
{
int x = tab[j];
tab[j] = tab[j-1];
tab[j-1] = x;
}
}
}
}