Pagini recente » Borderou de evaluare (job #1299653) | Cod sursa (job #610976) | Cod sursa (job #1114863) | Cod sursa (job #2076394) | Cod sursa (job #2274028)
#include<bits/stdc++.h>
using namespace std;
int part(int arr[], int st, int dr)
{
int pivot = arr[(st + dr)/2];
st = st - 1;
int i = st - 1;
for(int j = st; j <= dr - 1; j++){
if(arr[j] <= pivot){
i++;
int aux;
aux = arr[j];
arr[j] = arr[i];
arr[i] = aux;
}
}
i++;
int aux = arr[(st + dr)/2];
arr[(st+dr)/2] = arr[i];
arr[i] = aux;
return i ;
}
void quickSort(int arr[], int st, int dr)
{
if(st < dr){
int p = part(arr,st,dr);
quickSort(arr, st, p);
quickSort(arr, p + 1, dr);
}
}
int main(){
ifstream f("algsort.in");
ofstream g("algsort.out");
int arr[500001], i, n;
f>>n;
for(i = 1; i <= n; i++) f>>arr[i];
quickSort(arr, 1, n);
for(i = 1; i <= n; i++) g<<arr[i]<<" ";
return 0;
}