Pagini recente » Cod sursa (job #1719023) | Cod sursa (job #661673) | Cod sursa (job #2666001) | Cod sursa (job #681910) | Cod sursa (job #3001900)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int partitie(int v[], int st, int dr){
int pivot=v[dr];//de schimbat
//partitionare in functie de pivot
int j=dr-1;
int i=st;
while(i<=j){
if (v[i]<=pivot) i++;
else if (v[j]>=pivot) j--;
else {
swap(v[i],v[j]);
i++;
j--;
}
}
swap(v[i],v[dr]);
return i;
}
void recur(int v[], int st, int dr)
{
if (st<dr){
int index_pivot=partitie(v,st,dr);
recur(v,st,index_pivot-1);
recur(v,index_pivot+1,dr);
}
}
void quicksort(int v[], int N){
recur(v,0,N-1);
}
int main(){
int v[5000],n;
in>>n;
for (int i = 0; i < n; i++)
{
in>>v[i];
}
quicksort(v,n);
for (int i = 0; i < n; i++)
{
out<<v[i]<<" ";
}
}