Pagini recente » Cod sursa (job #1809020) | Cod sursa (job #1845934) | Cod sursa (job #3229875) | infoarena - te ajutam sa devii olimpic! | Cod sursa (job #2917528)
#include <fstream>
std::ifstream in("algsort.in");
std::ofstream out("algsort.out");
int n, arr[500000];
int partition(int* arr, int l, int r) {
int val = arr[l];
int dr = r;
int i = l + 1;
while (i <= dr) {
if (arr[i] < val)
std::swap(arr[i], arr[i - 1]), i++;
else
std::swap(arr[i], arr[dr--]);
}
return dr;
}
void quicksort(int* arr, int l, int r) {
if (l >= r) return;
int mid = partition(arr, l, r);
quicksort(arr, l, mid - 1);
quicksort(arr, mid + 1, r);
}
int main() {
in >> n;
for (int i = 0; i < n; i++) in >> arr[i];
quicksort(arr, 0, n - 1);
for (int i = 0; i < n; i++) out << arr[i] << ' ';
}