Cod sursa(job #1459309)

Utilizator alin.18Chedea Alin alin.18 Data 9 iulie 2015 15:56:14
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#define nmax 500001

using namespace std;

void quickSort(long arr[], int left, int right) {
      int i = left, j = right;
      int tmp;
      int pivot = arr[(left + right) / 2];

      /* partition */
      while (i <= j) {
            while (arr[i] < pivot)
                  i++;
            while (arr[j] > pivot)
                  j--;
            if (i <= j) {
                  tmp = arr[i];
                  arr[i] = arr[j];
                  arr[j] = tmp;
                  i++;
                  j--;
            }
      };

      /* recursion */
      if (left < j)
            quickSort(arr, left, j);
      if (i < right)
            quickSort(arr, i, right);
}

int main()
{
    int n,i,ok;
    long arr[nmax];
    ifstream f ("algsort.in");
    ofstream g ("algsort.out");
    f>>n;
    for (int i=1;i<=n;i++)
        f>>arr[i];
    quickSort(arr,1,n);
    for (int i=1;i<=n;i++)
        g<<arr[i]<<" ";
    return 0;
}