Pagini recente » Cod sursa (job #3157534) | Cod sursa (job #398791) | Cod sursa (job #2675636) | Cod sursa (job #2077141) | Cod sursa (job #2458711)
#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;
}