Tablica w funkcji własnej a zmienianie tablicy w funkcji głównej

0

Witajcie!
Mam za zadanie porównać kilka rodzajów sortowania, czyli wypisać je powiedzmy jedno po drugim z czasami tego, ile to się robi.
Do tego zadania tworzę na początku zwykła tablicę tab[], w której są wpisane liczby do posortowania.
Gdy sortuję pierwszą metodą(wstawianie) używając funkcji własnej to zmienia mi się też ta główna tablica, w funkcji głównej.
Jak sprawić, żeby ta tablica w funkcji głównej się nie zmieniała?

Wygląda to na ten moment mniej więcej tak, że najpierw robię w main() tablicę tab[10], wpisuję w nią 10 liczb i potem piszę:
Wstawianie (tab,10); // żeby odwołać się do funkcji własnej pokazanej poniżej

 void Wstawianie( int tob[], int size )
{
    int temp, j;

    for( int i = 1; i < size; i++ )
    {
        temp = tob[ i ];

        for( j = i - 1; j >= 0 && tob[ j ] > temp; j-- )
             tob[ j + 1 ] = tob[ j ];

        tob[ j + 1 ] = temp;
    }
   cout<<endl;
    for (int z=0;z<size;z++)
    {
        cout<<tob[z]<<" ";
    }
} 

I potem to tab też jest posortowane. Jak zrobić, żeby tamto zostało tak, jak było na początku, nieposortowane?
Z góry dziękuję za odpowiedź, ewentualnie podesłanie jakiegoś linku (nie mogę sam znaleźć nic takiego.)

2

Tworzysz główną tablicę czystą- jej nigdy nie przekazujesz do funkcji sortującej. Tworzysz obok niej drugą tablicę i robisz na niej memcpy i jako source podajesz tą pierwszą. Do każdej funkcji przekazujesz tą drugą, ale przed wejściem do kolejnego za każdym razem musisz odtwarzać tą drugą tablicę- czyli robić znowu memcpy.

http://www.cplusplus.com/reference/cstring/memcpy/

1

Drugi sposób (działa tylko jeżeli losujesz te liczby) zapamiętujesz: seed=rand();
Przed każdym losowaniem dajesz: srand(seed) przy takim samym seed dostaniesz dokładnie ten sam szereg liczb losowych.

0

Dziękuję :)

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