Pagini recente » Cod sursa (job #1561823) | Cod sursa (job #2301493) | Cod sursa (job #2587433) | Cod sursa (job #604187) | Cod sursa (job #1010877)
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
void sort(int *v, int n)
{
if (n < 0) return;
if (n < 1) return;
//cout << "N este:" << n << " iar pivotul este: " << v[0] << endl;
int pivot = v[0];
// gasim lista < pivot in vector
int *lesser = new int[n]; int k = 0;
for (int i = 0; i < n; i++)
if (v[i] < pivot)
{
lesser[k++] = v[i];
//cout << v[i] << "este mai mic decat: " << pivot << endl;
}
// sortam lesser
sort(lesser, k);
delete[] lesser;
// afisam pivotul
cout /*<< "NR SORTAT ESTE: "*/ << pivot << /*endl*/ " ";
// gasim lista > pivot in vector
int *greater = new int[n]; int l = 0;
for (int i = 0; i < n; i++)
if (v[i] >= pivot)
{
greater[l++] = v[i];
//cout << v[i] << "este mai mare decat: " << pivot << endl;
}
// sortam greater
sort(greater, l);
delete[] greater;
}
int main()
{
int n;
cin >> n;
int *v = new int[n];
for(int i = 0; i < n; i++)
cin >> v[i];
sort(v, n);
delete[] v;
cin.close();
cout.close();
}