Nadesłany przez Krzysztof Kranc, 02 listopada 2012 13:41
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 liczb calkowitych metoda babelkowa Program zostal pobrany ze strony www.algorytm.org Opracowal Krzysztof Kranc */ #include <iostream> using namespace std; //tablica do posortowania oraz jej wielkosc int wielkoscTablicy = 0; int *tablica = new int [0]; //ustawia wielkosc tablicy do posortowania void setWielkoscTablicy(int x) { wielkoscTablicy = x; tablica = new int [wielkoscTablicy]; } //pobiera wielkosc tablicy do posortowania int getWielkoscTablicy() { return wielkoscTablicy; } //wypelnienie tablicy wartosciami pobranymi od uzytkownika void wypelnianieTablicy() { for(int i = 0; i < wielkoscTablicy; i++) { cout << "Podaj " << i+1 << " element.\n"; cin >> tablica[i]; if(cin.fail()) { i--; cout << "Wprowadz poprawna wartosc! \n"; cin.clear(); cin.sync(); } } } //algorytm sortowania babelkowego void sortowanieBabelkowe() { int zmiana , licznik, tymczasowa; if(wielkoscTablicy <= 1) { cout << "Podaj wiekszy zakres liczb!"; } else { do { licznik = wielkoscTablicy-1; zmiana = 0; do { licznik--; if(tablica[licznik] > tablica[licznik+1]) //jezeli elementy sa w zlym porzadku { //zamien je miejscami tymczasowa = tablica[licznik+1]; tablica[licznik+1] = tablica[licznik]; tablica[licznik] = tymczasowa; zmiana=1; } } while(licznik!=0); //dla wszystkich par w tablicy } while(zmiana!=0); //dopoki wykryto ze tablica jest nieposortowana //wypisz wynik for(int i = 0; i < wielkoscTablicy; i++) { cout << tablica[i] << " , "; } } } //glowne wejscie do programu int main() { int x; char warunek = 'n'; do { cout << "Podaj ilosc elementow do posegregowania \n"; cin >> x; if(cin.good()) { setWielkoscTablicy(x); } else { cout << "Wprowadz poprawna wartosc! \n"; cin.clear(); cin.sync(); } wypelnianieTablicy(); sortowanieBabelkowe(); cout << " \n" << "Wcisnij t, aby zakonczyc! \n"; cin >> warunek; if(cin.fail()) { cin.clear(); cin.sync(); } } while(warunek!='t'); cout << "Wykonanie programu : Krzysztof Kranc"; return 0; }