Hahah, 50 euro xd Tak jak pisałem teraz próbuję iść inną drogą i przejśc z tą macierzą na tablice jednowymiarową. I odpowiem na Twoje głupie komentarze. Nie nie czekam na gotowca ..... Cały program nie opiera się tylko na tej części sortowania. Ja ciągle się uczę i jeżeli mi nie chcesz pomóc to po prostu nie pisz i się nie ośmieszaj....
Do tego mi się udało teraz dojśc, ale dalej ma jakiś błąd, którego nie widzę i nie sortuje jak na razie macierzy.
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>
using namespace std;
const int n = 10, m = 10; // LiczebnoϾ zbioru
int d[100];
int M[n][m];
//----------------------------------------------------
// sortowanie
void Sortuj(int lewy, int prawy)
{
int i,j,piwot;
i = (lewy + prawy) / 2;
piwot = d[i]; d[i] = d[prawy];
for(j = i = lewy; i < prawy; i++)
if(d[i] < piwot)
{
swap(d[i], d[j]);
j++;
}
d[prawy] = d[j]; d[j] = piwot;
if(lewy < j - 1) Sortuj(lewy, j - 1);
if(j + 1 < prawy) Sortuj(j + 1, prawy);
}
int main()
{
int i,j;
srand((unsigned)time(NULL));
cout << "Sortowanie szybkie" << endl;
//----------------------------------------------------------------------
//wype³niamy tablicê d[] liczbami pseudolosowymi
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
M[i][j] = rand() % 100;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
cout << setw(4) << M[i][j];
cout << endl;
//------------------------------------------------------------------
//Przejście z tablicy dwuwymiarowej do jednowymiarowej
int t = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
d[t] = M[i][j];
t++;
}
}
// Sortujemy
Sortuj(0,n - 1);
//------------------------------------------------------------------
//Przejście z tablicy jednowymiarowej do dwuwymiarowej
int x = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
M[i][j]= d[x];
x++;
}
}
// Wyœwietlamy wynik sortowania
cout << "Po sortowaniu:" << endl;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
cout << setw(4) << M[n][m];
cout << endl;
return 0;
}