Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

bubble sort

Ostatnio zmodyfikowano 2014-03-30 20:01
Autor Wiadomość
Lvkaz
Temat założony przez niniejszego użytkownika
bubble sort
» 2014-03-30 19:47:47
Witam, napisałem "obrazowy" bubble sort ktory pokazuje mi co po kolei robi, natomiast dla niektórych wartości do tabeli przypisuje się zła zmienna, z pamięci. Nie mogę znaleźć błędu czy tam niewyzerowanej zmiennej. Z góry dziękuje za pomoc.
(tak wiem, że nie potrzeba tylu zmiennych etc, próbowalem wszystkiego żeby to wyeliminować)
pozdr.

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
    srand( time( 0 ) );
    int wielkosc = 0;
    cout << "Ile numerow?" << endl;
    cin >> wielkosc;
    int tab[ wielkosc ];
    for( int i = 0; i < wielkosc; i++ )
    {
        tab[ i ] = rand() % 20; // losowanie liczb 0-19
    }
    cout << "presenting the table, initialized with random numbers:" << endl;
    for( int j = 0; j < wielkosc; j++ )
    {
        cout << tab[ j ] << " ";
    }
    int temp = 0;
    int counter = 0;
    cout << "sorting. printing every run now:" << endl;
    for( int k = 0; k < wielkosc - 1; k++ )
    {
        cout << endl << "run number: " << counter << endl;
        for( int l = 0; l < wielkosc; l++ )
        {
            if( tab[ l ] < tab[ l + 1 ] )
            {
                temp = tab[ l ];
                tab[ l ] = tab[ l + 1 ];
                tab[ l + 1 ] = temp;
                for( int o = 0; o < wielkosc; o++ )
                {
                    cout << tab[ o ] << " ";
                }
                cout << endl;
            }
            temp = 0;
        }
        counter++;
    }
    cout << endl << "finsihed sorting. final array:" << endl;
   
    for( int p = 0; p < wielkosc; p++ )
    {
        cout << tab[ p ] << " ";
    }
    return 0;
}
P-107489
SeaMonster131
» 2014-03-30 20:01:21
Tak nie tworzy się tablic, ich rozmiar musi być znany w trakcie kompilacji.
C/C++
int wielkosc = 0;
cout << "Ile numerow?" << endl;
cin >> wielkosc;
int tab[ wielkosc ];

Wychodzisz poza zakres tablicy:
C/C++
for( int l = 0; l < wielkosc; l++ )
{
    if( tab[ l ] < tab[ l + 1 ] )
    {
        temp = tab[ l ];
        tab[ l ] = tab[ l + 1 ];
        tab[ l + 1 ] = temp;


» Algorytmy » Sortowanie danychSortowanie bąbelkowe (ang. bubble sort) algorytm
P-107491
« 1 »
  Strona 1 z 1