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

BubbleSort - pytanie o podstawy

Ostatnio zmodyfikowano 2015-10-19 01:29
Autor Wiadomość
michal11
» 2015-10-19 00:06:08
nadal wywala błąd na cpp.sh
Wklej CAŁY kod.

Edit.
Aha, czyli to już był cały kod, w takim razie masz już odpowiedz.
P-138864
carlosmay
» 2015-10-19 00:09:42
j <= 5 - i
 dla tego
tab[ j + 1 ]
 wyjdzie poza zakres tablicy.

Jeśli tak uważasz, napisz tablice na 20 elementów, mocno pomieszaną i sprawdź czy posortuje.
P-138865
michal11
» 2015-10-19 00:14:13
@up
to daj
j <= 5 - i - 1
 lub lepiej
j < 5 - i
P-138866
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-19 00:29:44
Dla j <= 5 - i
C/C++
// Example program
#include <iostream>
#include <string>

int tab[] = { 2, 1, 3, 5, 3 };
int main()
{
    for( int i = 1; i < 5; i++ )
    for( int j = 1; j <= 5 - i; j++ )
    if( tab[ j ] > tab[ j + 1 ] )
    {
        int x = tab[ j ];
        tab[ j ] = tab[ j + 1 ];
        tab[ j + 1 ] = x;
    }
}

Kompilacja jest bez błędów.

Powiedzcie mi teraz z ciekawości jak przerobić kod żeby na ekranie pojawiła się uporządkowana lista? Wiem, że trzeba skorzystać z funkcji return, ale jak zdefiniować uporządkowaną listę? retun tab[] = { i tu trzeba dac jakis warunek zeby zaczynala sie od j=1 a konczyla na j=5}
P-138867
carlosmay
» 2015-10-19 00:33:54
C/C++
for( int i = 0; i < 5; i++ )
     cout << tab[ i ] << " ";

 Dopisz za swoim kodem.
Ps. Komórka
P-138868
michal11
» 2015-10-19 00:38:46
i < 0
Ja bym to zmienił ;)
P-138869
maciek1o3s
Temat założony przez niniejszego użytkownika
» 2015-10-19 01:07:16
C/C++
// Example program
#include <iostream>
#include <string>
using namespace std;

int tab[] = { 2, 1, 3, 5, 3 };
int main()
{
    for( int i = 1; i < 5; i++ )
    for( int j = 1; j <= 5 - i; j++ )
    if( tab[ j ] > tab[ j + 1 ] )
    {
        int x = tab[ j ];
        tab[ j ] = tab[ j + 1 ];
        tab[ j + 1 ] = x;
    }
    for( int i = 1; i < 5; i++ )
         cout << tab[ i ] << " ";
   
}

Adnotacje: zmieniłem int i = 0 na int i = 1 bo nasza tabela zaczyna sie od i=1.

Tutaj link:
cpp.sh/6le5

Complition succesful ale program nie działa jak widać - jest czyste okno. Co jest źle?
P-138870
carlosmay
» 2015-10-19 01:29:48
Odznacz wszystkie warnings i zaznacz mederate.
Będzie wynik sortowania.
Później zaznacz Full i będzie segmentation fault. Wyjście poza zakres

Masz błędny kod, ale upierasz się przy swoim.

lecimy od poczatku calosc, tylko po co jeśli tabela już jest uporządkowana?
 Zawsze możesz do wykrywania pustych przebiegów użyć zmiennej bool'owskiej.
Jeśli przejdzie cykl bez operacji zamiany zakończ sortowanie.
P-138871
1 2 3 « 4 »
Poprzednia strona Strona 4 z 4