sortowanie bąbelkowe

0

Mam napisać bubblesorta w funkcji i po napisaniu nie moge skompilować kodu. Pomóżcie lub napiszcie gdzie robie błąd lub jak go rozwiązać.

#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void Sortowanie( int tab[], int size )
{
    for( int i = 0; i < size; i++ )
    {
        for( int j = 0; j < size - 1; j++ )
        {
            if( tab[ j ] > tab[ j + 1 ] )
                 swap( tab[ j ], tab[ j + 1 ] );
            
        }
    }
}
         

int main()
{
    int tab[10];
    
    for(int i=0;i<10;i++)
    {  cout<<"Wpisz Liczbe"<<endl;
       cin>>tab[i];
    }
       
      cout<<Sortowanie(int tab[10]);
       
       system("PAUSE");
       return 0;
      
    
}

 
1

Programowanie nie polega na kopiowaniu kodu z Wikipedii czy StackOverflow.
cout<<Sortowanie(int tab[10]);

1

Popraw zakres wewnętrznej pętli.

0

w kilku miejscach (np tu: http://cpp0x.pl/kursy/Algorytmy/Sortowanie-danych/Sortowanie-babelkowe-ang-bubble-sort/444) spotkałem się już z tak napisanym sortowaniem bąbelkowym
ciekawe skąd się to bierze - czy ludzie tworzący psełdoedukacyjne serwisy bezmyślnie przepisują od siebie bez cienia refleksji ?

@The Hound:
j powinno być liczone od zera do size - i - 1 for (j=0;j<size - i - 1;j++)
lub ewentualnie od i+1 do size-1
lub ewentualnie od size-1 do i

tak jak jest też będzie działać tyle że będziesz miał mnóstwo niepotrzebnych przebiegów pętli ...

natomiast funkcja sortowanie jest typu void - więc co Ci właściwie ten cout ma wyświetlić ?

jeżeli chcesz wyświetlić zawartość tablicy musisz zrobić to w pętli:

for( int i = 0; i < 10; i++ ) cout<<tab[i]<<" ";

0

No więc tak funkcja Sortowanie powinna przyjmować adres pierwszego elementu tablicy oraz jej rozmiar

Sortowanie(tab, 10);

Ta funkcja nie zwraca żadnej wartości tylko sortuje tablice którą do niej przekazałeś, wiec nie możesz od tak wpakować jej do strumienia.
Po prostu po jej wywołaniu wyświetl tablicę

for(int i = 0;i < 10; ++i) std::cout<< tab[i] << "\n";
1

@fasadin - rozumiem że usunięcie posta oznacza przyznanie się do błędu, mimo to nie lubię jak ktoś twierdzi że wypisuje głupoty nie dając szansy na ciętą ripostę ;)
a przy okazji funkcja sortowanie mogła by zwracać strumień i wrzucać do niego zawartość tablicy po posortowaniu
wtedy dało by się tak zapisać to z cout'em

1 użytkowników online, w tym zalogowanych: 0, gości: 1