Cod sursa(job #1453263)

Utilizator azkabancont-vechi azkaban Data 23 iunie 2015 10:02:23
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
int n,a[500013],aux[500013],i;


int partitioneazaTab(int st,int dr)
{
 int i,Index=st;
 int pivotIndex=(st+dr)/2;
 int pivotValue=a[pivotIndex];
 swap(a[pivotIndex],a[dr]);
 for (i=st;i<dr;++i)
     if (a[i]<pivotValue)
      {
       swap(a[i],a[Index]);
       ++Index;
      }
 swap(a[Index],a[dr]);
 return Index;
}

void QuickSort(int st,int dr)
{
 if (st>=dr) return ;
 int p=partitioneazaTab(st,dr);
 QuickSort(st,p-1);
 QuickSort(p+1,dr);
}

int main(void)
{
 ifstream cin("algsort.in");
 ofstream cout("algsort.out");
 cin>>n;
 for (i=1;i<=n;++i) cin>>a[i];
 QuickSort(1,n);
 for (i=1;i<=n;++i) cout<<a[i]<<" ";
 return 0;
}