Pagini recente » Cod sursa (job #2616060) | Cod sursa (job #2557039) | Cod sursa (job #2470780) | Cod sursa (job #1991122) | Cod sursa (job #2907132)
#include <iostream>
#include <fstream>
int partition (int arr[], int low, int high)
{
int pivot = arr[high];
int i = low - 1;
for (int j = low; j <= high - 1; j++)
{
if (arr[j] < pivot)
{
i++;
int aux = arr[i];
arr[i] = arr[j];
arr[j] = aux;
}
}
int aux = arr[i+1];
arr[i+1] = arr[high];
arr[high] = aux;
return i + 1;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
int main()
{
std::ifstream f("algsort.in");
std::ofstream g("algsort.out");
int arr[500000];
int n;
f >> n;
for(int i=0;i<n;++i)
f >> arr[i];
quickSort(arr, 0, n - 1);
for(int i=0;i<n;++i)
g << arr[i] << " ";
f.close();
g.close();
return 0;
}