Cod sursa(job #2274587)

Utilizator richard26Francu Richard richard26 Data 2 noiembrie 2018 09:35:03
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int arr[500001];
void swp(int &a, int &b)
{
 int aux;
 aux = a;
 a = b;
 b = aux;
}
int part(int st, int dr)
{
    int pivot = arr[dr];
    int i, j;
    i = st;
    for(j = st; j < dr; j++){
        if(arr[j] <= pivot){
         if(i != j) swp(arr[j], arr[i]);
         i++;
        }
    }
    swp(arr[i], arr[dr]);
    return i;
}

void quicksort(int l, int r)
{
   // cout<<l<<" "<<r<<" ";
    if(l < r){
    int p = part(l,r);
    quicksort(l, p - 1);
    quicksort(p + 1, r);
    }
}
int main()
{
    int n, i;

    f>>n;

    for( i = 1; i <= n; i++) f>>arr[i];
    //for( i = 1; i <= n; i++) g<<arr[i]<<" ";
    quicksort(1,n);
    for( i = 1; i <= n; i++) g<<arr[i]<<" ";

    return 0;
}