Hej. Właśnie tu napisałem Quicksort. Niestety nie działa. Męczę się ze znalezieniem błędu i nic. Jak ktoś pomoże będę wdzięczny. Jako piwot przyjąłem pierwszy element tablicy.
#include <iostream>
using namespace std;
void Test(int tab[],int pierwszy,int ostatni)
{
int lewy=pierwszy;
int prawy=ostatni;
int piwot=tab[pierwszy];
do
{
while(tab[lewy]<piwot)
lewy++;
while(tab[prawy]>piwot)
prawy--;
if(lewy<=prawy)
{
swap(tab[lewy],tab[prawy]);
lewy++;
prawy--;
}
}while(lewy<=prawy);
swap(tab[pierwszy],tab[prawy]);
Test(tab,pierwszy,prawy-1);
Test(tab,prawy+1,ostatni);
}
int main()
{
const int rozmiar=5;
int tab[rozmiar]={7,4,2,5,1};
Test(tab,0,rozmiar-1);
for(int i=0;i<rozmiar;i++)
cout << tab[i] << " ";
return 0;
}