Skocz do zawartości


Zdjęcie

Wyjaśnienie programu


  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 Stryjo95

Stryjo95
  • Użytkownicy
  • 7 postów

Napisano 25 październik 2015 - 13:34

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;          //zbiór poleceń C#

const int N = 5;              // wprowadzamy ile liczb chcemy sortować

int main()
{
    srand( time( NULL ) );          // powoduje, że sortowane liczby się nie powtarzają
    int tablica[ N ];               // tworzymy tablicę 
    int zmiana, kres_z_lewej, kres_z_prawej;
    kres_z_lewej = 0;               // ustala że kres z lewej strony jest równy 0
    kres_z_prawej = N;              // ustala że kres z prawej strony jest równy liczbie tych sortowanych

    for( int i = 0; i < N; i++ )
        tablica[ i ] = rand() % 100;                    // pętla powoduje, że wylosowane liczby są z przedziału <0;100>

    for( int i = 0; i < N; i++ )
        cout << tablica [ i ] << ", ";                  // powoduje wyświetlenie licz wylosowanych 

    cout << endl << endl;

    do
    {
        zmiana = -1;
        for( int i = kres_z_lewej; i < kres_z_prawej - 1; i++ )
        {
            if( tablica[ i ] > tablica[ i + 1 ] )
            {
                swap( tablica[ i ], tablica[ i + 1] );           //warunek powoduje zamianę miejscami
                zmiana = i;
            }
            cout << zmiana << endl;
        }
        if( zmiana == -1 )
            break;

        kres_z_prawej = zmiana + 1;
        zmiana = 0;

        for( int i = kres_z_prawej; i >= kres_z_lewej; i-- )
            if( tablica[ i ] > tablica[ i + 1] )
        {
            swap( tablica[ i ], tablica[ i + 1] );                 //warunek powoduje zamianę miejscami
            zmiana = i;
        }
        kres_z_lewej = zmiana + 1;

    }while( zmiana >= 0);

    cout << "Posortowana tablica: " << endl;                     // wyświetla posortowana tablice 
    for( int i = 0; i < N; i++ )
        cout << tablica[ i ] << ", ";


  return 0;
}

Witam. Mam wytłumaczyć program z bąbelkowania dwukierunkowego. Mam taki programik i dobrze działa. Nie wszystko wiem jak działa dlatego proszę o pomoc. Napiszę w programie w komentarzach co wiem i byłbym wdzięczny jakby ktoś dopisał resztę jak działa. nie wiem głównie jak działają te pętle.

 


  • 0


#2 jarex_67

jarex_67
  • Użytkownicy
  • 151 postów

Napisano 29 sierpień 2017 - 18:28

Spróbuj tutaj jest fajne szkolenie http://geek-on.pl :)


  • 0

#3 isabela

isabela
  • Użytkownicy
  • 388 postów

Napisano 26 sierpień 2020 - 12:17

Może rzeczywiście warto udać się na szkolenie z tego zakresu? Orientujecie się jaki może być jego koszt?


  • 0


Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych