BubbleSort - pytanie o podstawy
Ostatnio zmodyfikowano 2015-10-19 01:29
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. |
|
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. |
|
michal11 |
» 2015-10-19 00:14:13 @up to daj j <= 5 - i - 1 lub lepiej j < 5 - i |
|
maciek1o3s Temat założony przez niniejszego użytkownika |
» 2015-10-19 00:29:44 Dla j <= 5 - i #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} |
|
carlosmay |
» 2015-10-19 00:33:54 for( int i = 0; i < 5; i++ ) cout << tab[ i ] << " ";
Dopisz za swoim kodem. Ps. Komórka |
|
michal11 |
» 2015-10-19 00:38:46 i < 0 Ja bym to zmienił ;) |
|
maciek1o3s Temat założony przez niniejszego użytkownika |
» 2015-10-19 01:07:16 #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? |
|
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. |
|
1 2 3 « 4 » |