Cod sursa(job #855783)

Utilizator marialivia16Chiorean Maria Livia marialivia16 Data 15 ianuarie 2013 17:00:14
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.32 kb
#include<cstdio>
#include<cstdlib>
void generate(float *&v,int &n)
{
     FILE *g;
     g=fopen("nr.txt","w+");
     int i; float f;
     n=10;
     v=(float*)calloc(n,sizeof(float*));
     for(i=0;i<n;i++)
    {
        f=(float)rand()/((float)RAND_MAX/1000);
        fprintf(g,"%.3f \n",f);
        v[i]=f;
    }
    
    fclose(g);
}
void citire(float *&v,int &n)
{
     FILE *f;
     f=fopen("nr.txt","r");
     int i;
     v=(float*)calloc(n,sizeof(float*));
     for(i=0;i<n;i++)
         fscanf(f,"%f",v[i]);
     fclose(f);
}
void quickSort(float *v,int st,int dr){
    int pivot,j,i;
    float temp;
     if(st<dr){
         pivot=st;
         i=st;
         j=dr;

         while(i<j){
             while(v[i]<=v[pivot]&&i<dr)
                 i++;
             while(v[j]>v[pivot])
                 j--;
             if(i<j){
                 temp=v[i];
                  v[i]=v[j];
                  v[j]=temp;
             }
         }

         temp=v[pivot];
         v[pivot]=v[j];
         v[j]=temp;
         quickSort(v,st,j-1);
         quickSort(v,j+1,dr);

    }
}
int main()
{
    int n,i;
    float *v;
    generate(v,n);
    //citire(v,n);
    quickSort(v,0,n-1);
    for(i=1;i<n;i++)
            printf("%d\n",v[i]);
    system("pause");
    return 0;
}