Cod sursa(job #2458711)

Utilizator ViAlexVisan Alexandru ViAlex Data 21 septembrie 2019 12:47:30
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include<vector>
#include<fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");

int part(vector<int>&to_partition,int low,int high)
{
    int pivot=to_partition[high];
    int last=low;
    for(; low<high; low++)
    {
        if(to_partition[low]<pivot)
        {
            swap(to_partition[last],to_partition[low]);
            last++;
        }
    }
    swap(to_partition[last],to_partition[high]);
    return last;
}
void prt(vector<int>&to_print)
{

    for(unsigned i=0; i<to_print.size(); i++)
        out<<to_print[i]<<" ";
}

void qsort(vector<int>&to_sort,int left,int right)
{
    if(left>=right)
        return;
    int piv=part(to_sort,left,right);
    qsort(to_sort,left,piv-1);
    qsort(to_sort,piv+1,right);

}


void srt(vector<int>&to_sort)
{
    qsort(to_sort,0,to_sort.size()-1);
}


void read()
{
    int n;
    in>>n;

    vector<int> to_sort(n);
    for(int i=0; i<n; i++)
        in>>to_sort[i];
    srt(to_sort);
    prt(to_sort);


}

int main()
{
    read();
    return 0;
}