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: *****  / 3
SłabyŚwietny
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;
            }
        }
    }
}

Dodaj komentarz