Insert sort od tylu

0

Witam.

Mam problem, ponieważ w zadaniu mam podane, że:

  • tablica wejściowa jest już posortowana (można ją w tym przypadku wypełnić kolejnymi liczbami naturalnymi);

  • tablica wejściowa jest „posortowana w odwrotnej kolejności” (sugerowany sposób przygotowania tablicy wejściowej jak wyżej);

I nie mam pojęcia jak ją posortować od tyłu.

Mój kod wygląda tak:

 #define MAX 10
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdlib.h>

using namespace std;

int main()
{
int tab[MAX];
int i=1, liczba=0, x=0, temp=0;
int licznik_porownan=0, licznik_zamiany=0;
int wybor;

srand((unsigned)time(NULL));
// POCZATEK WYPELNIANIA TABLICY LICZBAMI LOSOWYMI
for (i=0; i<MAX; i++)
{
 tab[i]=rand() % (MAX) + 0;
}
// KONIEC WYPE£NIANIA TABLICY


// POCZATEK SORTOWANIA TABLICY - INSERTION SORT
for (int i=1; i<MAX; i++)
{
    temp = tab[i];
    int j=i;

        while ((j>0) && (tab[j-1]>temp))
        {
            licznik_porownan++;
            tab[j] = tab[j-1];
            j--;
        }
licznik_zamiany++;
    tab[j]=temp;
}
// KONIEC SORTOWANIA TABLICY - INSERTION SORT

// POCZATEK WYSWIETLANIA TABLICY
        for (i=0; i<MAX; i++)
        {
            cout << tab[i] << "\t";
            if((i+1)%5==0)
            cout << endl;
        }
// KONIEC WYSWIETLANIA TABLICY //

// POCZATEK WYSWIETLANIA LICZNIKOW //
cout << "Licznik porownan wynosi -> " << licznik_porownan << endl;
cout << "Licznik zamian wynosi -> " << licznik_zamiany << endl;
// KONIEC WYSWIETLANIA LICZNIKOW //



system("pause");
return 0;
}
0

Polecam :
http://www.cplusplus.com/articles/NhA0RXSz/

Tam możesz zdefiniować też własną funkcje sortującą.
Tylko że musisz ustawić flage aby kompilator używał c++11.

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