algorytm.org

Implementacja w C/C++

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie bąbelkowe (bubblesort) - Implementacja w C/C++
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
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;
}
Dodaj komentarz