Pagini recente » Borderou de evaluare (job #3191895) | Cod sursa (job #93604) | Cod sursa (job #3200973) | Cod sursa (job #1070142) | Cod sursa (job #2442748)
#include <fstream>
#include <iostream>
using namespace std;
void swap(int * arr, int l, int r)
{
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
}
int partition(int * arr, int start, int end)
{
int pivot = arr[start];
int idx = start + 1;
for (int i = start + 1; i <= end; i++)
{
if (arr[i] < pivot) {
swap(arr, idx++, i);
}
}
swap(arr, idx - 1, start);
return idx - 1;
}
void quicksort(int * arr, int start, int end)
{
if (start < end) {
int pivot = partition(arr, start, end);
quicksort(arr, start, pivot - 1);
quicksort(arr, pivot + 1, end);
}
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
int *arr = new int[n];
for (int i = 0; i < n; i++)
{
fin >> arr[i];
}
quicksort(arr, 0, n - 1);
for (int i = 0; i < n; i++)
{
//printf("%d ", arr[i]);
fout << arr[i] << " ";
}
fin.close();
fout.close();
return 0;
}