Pagini recente » Cod sursa (job #321903) | Cod sursa (job #2807478) | Cod sursa (job #187994) | Cod sursa (job #627476) | Cod sursa (job #2763483)
#include <bits/stdc++.h>
#define dbg(x) #x << "=" << x << " "
#define debug2(x,y) "{" << x << "," << y << "} "
#define debug_a(a , n) cout << #a << " = "; for (int i =0 ; i < n; i++) cout << a[i] << " "; cout << "\n";
#define debug_m(a , n , m)cout << #a << " = "; for (int i =0 ; i < n; i++) { for (int j = 0; j < m; j++) cout << a[i][j] << " "; cout << "\n"; } cout << "\n";
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
vector<int> a;
int Partition(vector<int> &a , int left ,int right)
///ia elementul din dr, il pune unde trebuie in st
{
int pivot = a[right];
int i = left - 1;
for (int j = left; j <= right - 1; j++) {
if (a[j] <= pivot)
{
i++;
swap(a[i] , a[j]);
}
}
swap(a[i + 1] , a[right]);
return i + 1;
}
void quicksort(vector<int> &a, int left , int right)
{
if (left < right)
{
int pivot = Partition(a , left, right);
quicksort(a , left , pivot - 1);
quicksort(a , pivot + 1 , right);
}
}
int main()
{int i;
in >> n;
a.resize(n);
for (i = 0; i < n; i++) {
in >> a[i];
}
srand(time(NULL));
//cout << rand() << "\n";
quicksort(a , 0 , a.size() - 1);
for (i = 0; i < n; i++)
out << a[i] << " ";
out << "\n";
}