Cod sursa(job #1016602)

Utilizator medeea0507Medeea Lazea medeea0507 Data 26 octombrie 2013 15:21:31
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>

using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

int partitionare(int i,int j,int a[])
{
    int p,pv;
    p=rand() % (j-i+1) + i;
    pv=a[p];
    fout<<"pivot: "<<pv<<endl;
    while (i!=j)
    {
       while (a[i]<pv)
           i++;
       while (a[j]>pv)
           j--;
       swap(a[i],a[j]);
    }
    return i;

}
int quick(int i,int j,int a[],int st)
{
    int k;
    if (i<j)
    {
       k=partitionare(i,j,a);
       if (k>st)
          quick(i,k-1,a,st);
       else
        if (k<st)
            quick(k+1,j,a,st);
        else
            return a[k];
    }
}

int main()
{
    int a[80],n,i,k;
    fin>>n;
    fin>>k;
    for (i=1;i<=n;i++)
        fin>>a[i];
    fout<<"a "<<k<<"-a statistica de ordide este "<<quick(1,n,a,k);
    return 0;
}