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

szybkie sortowanie

Ostatnio zmodyfikowano 2015-02-13 13:11
Autor Wiadomość
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?
C/C++
#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;
}
P-126456
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ć.
C/C++
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;
        }
    }
   
}
P-126460
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 ;)
P-126465
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. ;)
P-126466
aksen
do Brunon3
» 2015-02-13 10:37:52
przed sortowaniem dla porównania też jest dobrze wypisać co się sortuje :)
P-126467
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). ;)
P-126469
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ć)
P-126470
Brunon3
» 2015-02-13 12:54:29
BTW tablica T[] jest globalna więc w ogóle nie trzeba jej przekazywać przez argument. ;)
P-126491
« 1 » 2
  Strona 1 z 2 Następna strona