robertos18 Temat założony przez niniejszego użytkownika |
szybkie sortowanie » 2015-02-12 22:43:02 Mam tablice,i chce ją posortować,jakie kroki musze poczynic w tym celu? #include<iostream>
using namespace std; int T[ 10 ] = { 1, 4, 6, 7, 9, 5, 3, 2, 1, 2 };
void druk( int T[] ) { for( int i = 0; i < 9; i++ ) cout << T[ i ] << endl; } void Sortowanie( int tab[], int left, int right ) { int i = left; int j = right; int x = tab[( left + right ) / 2 ]; do { while( tab[ i ] < x ) i++; while( tab[ j ] > x ) j--; if( i <= j ) { swap( tab[ i ], tab[ j ] ); i++; j--; } } while( i <= j ); if( left < j ) Sortowanie( tab, left, j ); if( right > i ) Sortowanie( tab, i, right ); }
int main()
{ druk( T ); Sortowanie(); return 0; } |
|
Peruskough |
» 2015-02-13 00:13:51 Jak chcesz posortować, to chyba najprościej skorzystać z sortowania bąbelkowego. No chyba, że koniecznie chcesz inaczej to zrobić. int a;
for( int x = 0; x <( dlugosctablicy ); x++ ) { for( int y = 0; y <( dlugosctablicy ); y++ ) { if( tab[ y ] > tab[ x ] ) { a = tab[ x ]; tab[ x ] = tab[ y ]; tab[ y ] = a; } } }
|
|
aksen |
do Peruskough » 2015-02-13 09:59:13 gość pisze o quicksort a ty mu o sortowaniu bąbelkowym ;)
(pomijając już fakt, że cały czas robi te same błędy i trzeba by mu odpisywać ciągle to samo - nie czyta komunikatów kompilatora - sortuje tablicę, potem nie wypisuje wyników na ekran i pyta się dlaczego program nie działa ;) |
|
Brunon3 |
» 2015-02-13 10:27:15 Nie wiem czy dobrze rozumiem jak ma działać ten program, ale podany w pierwszym poście kod najpierw wypisuje a potem sortuje. ;) |
|
aksen |
do Brunon3 » 2015-02-13 10:37:52 przed sortowaniem dla porównania też jest dobrze wypisać co się sortuje :) |
|
Brunon3 |
» 2015-02-13 10:52:33 Aha, rozumiem. :) Ale i tak żeby ten program miał jakikolwiek sens trzeba wywołać funkcję druk(int T[]) jeszcze raz po sortowaniu (co już było powiedziane kilka postów temu). ;) |
|
aksen |
» 2015-02-13 10:59:23 żeby ten program miał jakikolwiek sens trzeba wywołać funkcję druk(int T[]) jeszcze raz po sortowaniu |
dokładnie, oraz poprawnie przekazać parametry do funkcji Sortowanie(); (kompilator na pewno krzyczy o tym co jest nie tak, ale trzeba jego komunikaty czytać) |
|
Brunon3 |
» 2015-02-13 12:54:29 BTW tablica T[] jest globalna więc w ogóle nie trzeba jej przekazywać przez argument. ;) |
|
« 1 » 2 |