Pagini recente » Cod sursa (job #780247) | Cod sursa (job #1676795) | Cod sursa (job #2468871) | Cod sursa (job #3167376) | Cod sursa (job #2078078)
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <algorithm>
using namespace std;
int v[3000000];
ifstream in("sdo.in");
ofstream out("sdo.out");
int partition ( int st, int dr)
{
int pivot=v[dr];
int j=st;
int loc=st-1;
while(j<=dr)
{
if(v[j]<=pivot)
{
loc++;
swap(v[loc],v[j]);
}
j++;
}
for(int i=st;i<=dr;i++)cout<<v[i]<<" ";
cout<<endl<<"pivotul a fost "<<pivot<<endl;
if(loc>=dr)loc=dr-1;
return loc;
}
int quickSort( int st, int dr,int k)
{
if (st < dr)
{
int pi = partition( st, dr);
if(pi>k)return quickSort( st, pi - 1,k);
if(pi<k) return quickSort( pi + 1, dr,k-pi+st-1);
else if (pi==k)return v[pi];
}
}
int main()
{
int n,k;
in>>n>>k;
for(int i=1; i<=n; i++)in>>v[i];
out<<quickSort(1,n,k);
return 0;
}