Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "stdlib.h"
- #include "time.h"
- #define TRUE 1
- #define FALSE 0
- int A[2000],AOUNO[2000],B[3000],C[4000],D[5000],E[6000],F[7000];
- FILE *doc;
- void num_random(int vec[], int tam)
- {
- srand(time(NULL));
- for (int i = 0; i < tam; ++i)
- {
- vec[i]=(rand()%10000)+1;
- }
- }
- void reducirder(int ini, int fin){
- int izq, der, pos, aux, band;
- izq=ini;
- der=fin;
- pos=fin;
- band=TRUE;
- while(band==TRUE){
- band=FALSE;
- while(A[pos]>=A[izq] && pos!= izq)
- izq=izq+1;
- if(pos!=izq){
- aux=A[pos];
- A[pos]=A[izq];
- A[izq]=aux;
- pos=izq;
- while(A[pos]<= A[der] && pos != der)
- der=der-1;
- if(pos != der){
- band=TRUE;
- aux=A[pos];
- A[pos]=A[der];
- A[der]=aux;
- pos=der;
- }
- }
- }
- if((pos-1) >ini)
- reducirder(ini,pos-1);
- if(fin > (pos +1))
- reducirder(pos+1,fin);
- }
- void reducirizq(int ini, int fin){
- int izq, der, pos, aux, band;
- izq=ini;
- der=fin;
- pos=ini;
- band=TRUE;
- while(band==TRUE){
- band=FALSE;
- while(A[pos]<= A[der] && pos != der)
- der=der-1;
- if(pos != der){
- aux=A[pos];
- A[pos]=A[der];
- A[der]=aux;
- pos=der;
- while(A[pos]>=A[izq] && pos!= izq)
- izq=izq+1;
- if(pos!=izq){
- band=TRUE;
- aux=A[pos];
- A[pos]=A[izq];
- A[izq]=aux;
- pos=izq;
- }
- }
- }
- if((pos-1) >ini)
- reducirizq(ini,pos-1);
- if(fin > (pos +1))
- reducirizq(pos+1,fin);
- }
- void quicksortizq(int A[],int N){
- reducirizq(0,N-1);
- }
- void quicksortder(int A[],int N){
- reducirder(0,N-1);
- }
- int main()
- {
- doc = fopen("tiempos.txt","w");
- //Variables aux
- int tamano;
- clock_t inicio, fin;
- //procesando vector de 2000 izq
- tamano=sizeof(A)/sizeof(int);
- num_random(A,tamano);
- for(int i=0;i<tamano;i++) A[i]=AOUNO[i];
- inicio=clock();
- quicksortizq(AOUNO,tamano);
- fin=clock();
- printf("%f\n", (float)(fin-inicio)/(float)CLOCKS_PER_SEC);
- //
- //procesando vector de 2000 der
- //Copiando vector
- for(int i=0;i<tamano;i++) A[i]=AOUNO[i];
- inicio=clock();
- quicksortder(AOUNO,tamano);
- fin=clock();
- printf("%f\n", (float)(fin-inicio)/(float)CLOCKS_PER_SEC);
- //
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement