Cod sursa(job #1701509)

Utilizator Alinnkb96Terinte Alin Alinnkb96 Data 13 mai 2016 12:25:38
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

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

int arr[500000],n;
void print(int *a, int n)
{
    int i=0;
    while(i<n){
        cout<<a[i]<<",";
        i++;
    }
}

void swap(int i,int j, int *a){
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
}


void quicksort(int *arr, int left, int right){
    int rand;
    int min=left;

    int i = left;
    int j = right;
    int pivot = arr[min];

    while(left<j || i<right)
    {
        while(arr[i]<pivot)
        i++;
        while(arr[j]>pivot)
        j--;

        if(i<=j){
            swap(i,j,arr);
            i++;
            j--;
        }
        else{
            if(left<j)
                quicksort(arr, left, j);
            if(i<right)
                quicksort(arr,i,right);
            return;
        }
    }
}


int main()
{
    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]<<" ";
    return 0;
}