Pagini recente » Cod sursa (job #2477434) | Cod sursa (job #489672) | Cod sursa (job #69291) | Cod sursa (job #2284872) | Cod sursa (job #2931129)
#include <bits/stdc++.h>
#define N 500005
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
int arr[N];
void read() {
f>>n;
for(int i = 1;i <= n;++i) {
f>>arr[i];
}
}
void swap(int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
int partition(int left, int right) {
int index = left - 1;
int pivot = arr[right];
for(int i = left;i < right;++i) {
if(arr[i] <= pivot) {
index++;
swap(index, i);
}
}
++index;
swap(index, right);
return index;
}
void quickSort(int left, int right) {
if(left < right) {
int p = partition(left, right);
quickSort(left, p - 1);
quickSort(p + 1, right);
}
}
void solve() {
quickSort(1, n);
for(int i = 1;i <= n;++i) {
g<<arr[i]<<" ";
}
}
int main() {
read();
solve();
return 0;
}