Ayuda con este codigo

ELIAS
01 de Junio del 2006
Tengo un problema con mi kodigo y queria saber si alguien tiene el tiempo ps pa checarlo y poder ayudarme.

Este codigo te hace los metodos de ordenamiento, pero al momento de graficarlo, no me grafica como deberia de ser... me sale una linea arriba , y las barras de los metodos que utiliza y me los grafica me los grafica igual, por ejemplo si el de burbuja tardo n segundos y el de quick tardo m segundos , el tama˝o de las graficas son =les tons si alguien puede...

Este es elcodigo.

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<dos.h>
#include<time.h>
struct times
{
float burbuja,senal,sac,insercion,binaria,sel_directa,shell,quick,sort,merge;
}total_time;
struct ejecucion
{ char metodos[20];
int bands;
float tiempo;
}registro[12];
int i,num[20]={0},x;
int w[20]={0};
clock_t inicio,final;
void numeros(void);
int menu(void);
void burbu1(void);
void burbu2(void);
void burbu3(void);
void burbuse(void);
void shaker(void);
void insercion(void);
void inserbina(void);
void selecdire(void);
void shell(void);
void quicksort(void);
void heapsort(void);
void mergesort(void);
void MergeSort(int *vec, int m);
void Merge(int* ,int*,int*,int,int);
void cuadro(int a,int b,int c,int d);
void graph();
main()
{int opc;
while(1)
{opc=menu();
switch(opc)
{case 1:{numeros(); break; }
case 2:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();
burbu1();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.burbuja=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 3:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();burbuse();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.senal=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 4:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();shaker();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.sac=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 5:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();insercion();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.insercion=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 6:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();inserbina();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.binaria=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 7:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();selecdire();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.sel_directa=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 8:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();shell();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.shell=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 9:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();quicksort();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.quick=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 10:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();heapsort();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.sort=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 11:{for(i=0; i<x; i++)
{num[i]=w[i];}
inicio=clock();mergesort();final=clock();
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
total_time.merge=((final-inicio)/CLK_TCK)*10;
printf("nnttPULSE ENTER");getch();break;}
case 12:graph();
gotoxy(55,18);textcolor(YELLOW+BLINK);cprintf("PULSE ENTER");
getch();break;
case 13:{exit(0);}
}
}
}
void numeros(void)
{textbackground(BLUE);
clrscr();
char s[80];
gotoxy(25,5);textcolor(YELLOW);cprintf("* * INSERCION DE NUMEROS * *");
gotoxy(25,15);printf("CUANTOS NUMEROS: ");x=atoi(gets(s));
for(i=0; i<x; i++)
{gotoxy(25,19+i);
printf("ntttNUMERO %d: ",i+1);
w[i]=num[i]=atoi(gets(s));}
printf("nnntttşşşşşINSERCCION LISTA!!!!!");getch();
printf("nnttttPULSE ENTER");
getch();
}
int menu(void)
{int i;
char s[40],ch;
char menu[14][50]={" ","[1]---INSERCION DE NUMEROS",
"[2]---ORDENACION POR BURBUJA ",
"[3]---ORDENACION POR BURBUJA CON SEąAL",
"[4]---ORDENACION POR SACUDIDA(SHAKER SORT)",
"[5]---ORDENACION POR INSERCION DIRECTA",
"[6]---ORDENACION POR INSERCION BINARIA",
"[7]---ORDENACION POR SELECCION DIRECTA",
"[8]---ORDENACION POR SHELL",
"[9]---ORDENACION POR QUICKSORT",
"[10]--ORDENACION POR MONTICULO(HEAPSORT)",
"[11]--ORDENACION POR MERGESORT(COMBINACION)",
"[12]--HISTOGRAMA",
"[13]--SALIR"};
textbackground(BLUE);
clrscr();
textbackground(BLUE);
gotoxy(30,3);textcolor(WHITE);cprintf("* METODOS DE ORDENACION *");
cuadro(15,5,55,19);
for(i=1; i<13; i++)
{if(i==1)
{gotoxy(25,5+i);textbackground(WHITE);}
gotoxy(20,5+i); textcolor(WHITE);cprintf("%s",menu[i]);
textbackground(BLUE);
}
gotoxy(20,28);printf("nntESCOGA LA OPCION CON LAS FLECHAS DIRECCIONALES Y LUEGO PRESIONE ENTER");
i=1 ;
do{ch=getch();
if(ch==' ')
ch=getch();
if(ch==80){
gotoxy(20,5+i);textbackground(BLUE);
textcolor(WHITE);cprintf("%s",menu[i]);
if(i==13)//13
i=1;
else
i++;
gotoxy(20,5+i);textbackground(BLUE);
textcolor(WHITE);cprintf("%s",menu[i]);}
if(ch==72){
gotoxy(20,5+i);textbackground(BLUE);
textcolor(WHITE);cprintf("%s",menu[i]);
if(i==1)
i=13;//13
else
i--;
gotoxy(20,5+i);textbackground(BLUE);
textcolor(WHITE);cprintf("%s",menu[i]);}
if(ch==13) //13
return i;
}while(1);
}
void cuadro(int a,int b,int c,int d)
{int i;
textcolor(BROWN+BLINK);
gotoxy(a,b);cprintf("(:");
gotoxy(c+13,d);cprintf(":)");
gotoxy(a,d);cprintf("(:");
gotoxy(c+13,b);cprintf(":)");
for(i=b+1;i<d;i++)
{gotoxy(a,i);cprintf("(:");
gotoxy(c+13,i);cprintf(":)");}
for(i=a+1;i<c+13;i++)
{gotoxy(i,b);cprintf(":)");
gotoxy(i,d);cprintf(":)");}
}
void burbu1(void)
{int a,j,aux,mov=0,comp=0,pas=0,contc=0,contm=0;
textbackground(BLACK);
clrscr(); char s[80];
gotoxy(31,2);textcolor(YELLOW);cprintf("ORDENACION POR BURBUJA");
for(i=1; i<x; i++)
{for(j=x-1; j>=i; j--)
{comp=comp+1;
if(num[j-1]>num[j])
{aux=num[j-1];
num[j-1]=num[j];
num[j]=aux;
mov=mov+1;}
}
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",comp);
printf("ntMOVIMIENTOS: %d",mov);
printf("ntAsi queda!!!!: ");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+comp;
contm=contm+mov;
mov=0; comp=0;
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("nntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS!!!!n");
for(i=0; i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttTiempo de ejecucion = %f",(final-inicio)/CLK_TCK);
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void burbuse(void)
{int a,j,aux,mov=0,comp=0,pas=0,band=0,contc=0,contm=0;
textbackground(BLACK);
clrscr();
char s[80];
gotoxy(23,1);textcolor(YELLOW);cprintf("ORDENACION POR BURBUJA CON SEąAL");
i=1;
band=0;
while((i<=x-1)&& (band==0))
{inicio=clock();
band=1;
for(j=0; j<x-1; j++)
{comp=comp+1;
if(num[j]>num[j+1])
{aux=num[j];
num[j]=num[j+1];
num[j+1]=aux;
band=0;
mov=mov+1;}
}
i=i+1;
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",comp);
printf("ntMOVIMIENTOS: %d",mov);
contc=contc+comp;
contm=contm+mov;
comp=0;
mov=0;
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0; i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void shaker(void)
{int izq=1,der=0,k=0,aux,pas=0,contc=0,contm=0;
int mov1=0,mov2=0,movt=0,comp1=0,comp2=0,compt=0;
char s[80];
textbackground(BLACK);
clrscr();
gotoxy(20,1);textcolor(YELLOW);cprintf("nnORDENACION POR SACUDIDA(SHAKER SORT)");
der=x-1;
k=x-1;
while(der >= izq)
{for(i=der; i>=izq; i--)
{comp1=comp1+1;
if(num[i-1] > num[i])
{aux=num[i-1];
num[i-1]=num[i];
num[i]=aux;
k=i;
mov1=mov1+1;}
}
izq=k+1;
for(i=izq; i<=der; i++)
{comp2=comp2+1;
if(num[i-1] > num[i])
{aux=num[i-1];
num[i-1]=num[i];
num[i]=aux;
k=i;
mov2=mov2+1;}
}
pas=pas+1;
compt=comp1+comp2;
movt=mov1+mov2;
contc=contc+compt;
contm=contm+movt;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",compt);
printf("ntMOVIMIENTOS: %d",movt);
printf("ntAsi queda!!!:");
for(i=0;i<x; i++)
{printf("%d,",num[i]);}
comp1=0; comp2=0; mov1=0; mov2=0; compt=0; movt=0;
der=k-1;
}
printf("nntCOMPARACIONES TOTALE: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0;i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void insercion(void)
{int a,/*k=0*/k,aux,pas=0;
int mov=0,comp=0,contc=0,contm=0;
char s[80];
textbackground(BLACK);
clrscr();
gotoxy(23,1);textcolor(YELLOW);cprintf("ORDENACION POR INSERCION DIRECTA");
for(i=1; i<x; i++)//i=2
{aux=num[i];
k=i-1;
comp=comp+1;
while((k>=0) && (aux<num[k]))
{num[k+1]=num[k];
mov=mov+1;
k=k-1;}
num[k+1]=aux;
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",comp);
printf("ntMOVIMIENTOS: %d",mov);
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+comp;
contm=contm+mov;
comp=0;
mov=0;}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0;i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void inserbina(void)
{int a,m=0,j=0,aux,pas=0;
int izq=0,der=0,mov=0,comp=0,contc=0,contm=0;
char s[80];
textbackground(BLACK);
clrscr();
gotoxy(23,1);textcolor(YELLOW);cprintf("ORDENACION POR INSERCION BINARIA");
for(i=1; i<x; i++) //i=2
{aux=num[i];
izq=0;
der=i-1;
while(izq <= der) //todo esto es para partir el arreglo
{m=(izq+der)/2;
comp=comp+1;
if(aux <= num[m])
{der=m-1;}
else
{izq=m+1;}
}
j=i-1;
while(j >= izq)
{num[j+1]=num[j];
mov=mov+1;
j=j-1;}
num[izq]=aux;
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",comp);
printf("ntMOVIMIENTOS: %d ",mov);
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+comp;
contm=contm+mov;
comp=0; mov=0;
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0;i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void selecdire(void)
{int a,j,aux,menor=0,k=0,mov=0,comp=0,pas=0,contc=0,contm=0;
char s[80];
textbackground(BLACK);
clrscr();
gotoxy(23,1);textcolor(YELLOW);cprintf("ORDENACION POR SELECCION DIRECTA");
for(i=0; i<x-1; i++) //i=0,i<=x-1
{menor=num[i];
k=i;
for(j=i+1; j<=x-1; j++)
{comp=comp+1;
if(num[j] < menor)
{menor=num[j];
k=j;//POSICION
mov=mov+1;}
}
num[k]=num[i]; //MOVIMIENTO
num[i]=menor; //MOVIMIENTO
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d ",comp);
printf("ntMOVIMIENTOS: %d",mov);
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+comp;
contm=contm+mov;
comp=0;
mov=0;
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0; i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void shell(void)
{int a,INT=0,band=0;
int aux,mov=0,comp=0,pas=0,contc=0,contm=0;
char s[80];
textbackground(BLACK);
clrscr();
gotoxy(30,2);textcolor(YELLOW);cprintf("ORDENACION POR SHELL");
INT=x;
while(INT>1)
{INT=INT/2;
band=1;
while(band==1)
{band=0;
i=0;
while((i+INT)<x)
{comp=comp+1;
if(num[i]>num[i+INT])
{aux=num[i];
num[i]=num[i+INT];
num[i+INT]=aux;
band=1;
mov=mov+1;}
i=i+1;
}
}
pas=pas+1;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d ",comp);
printf("ntMOVIMIENTOS: %d",mov);
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+comp;
contm=contm+mov;
comp=0; mov=0;
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0; i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
//LISTO
void quicksort()
{int a,c,top=0,ini=0,fin=0,pos=0,pilamenor[40],pilamayor[40];
int izq=0,der=0,band=0,aux;//,bande=0;
int comp1=0,comp2=0,mov1=0,mov2=0,movt=0,compt=0,pas=0,contc=0,contm=0;
char cad[80];
textbackground(BLACK);clrscr();
gotoxy(28,1);textcolor(YELLOW);cprintf("ORDENACION POR QUICKSORT");
top=0;
pilamenor[top]=0;
pilamayor[top]=x-1;
while(top>=0)
{band=0;
ini=pilamenor[top];
fin=pilamayor[top];
top=top-1;
//LLAMA A REDUCEITERATIVO CON INI, FIN Y POS
izq=ini;
der=fin;
pos=ini;
band=1;
while(band==1)
{comp1=comp1+1;
while((num[pos]<=num[der]) && (pos!=der))
{der=der-1;}
if(pos==der) band=0;
else{
aux=num[pos];
num[pos]=num[der];
num[der]=aux;
mov1=mov1+1;
pos=der;
comp2=comp2+1;
while((num[pos]>=num[izq]) && (pos!=izq))
{izq=izq+1;}
if(pos==izq)band=0;
else{
aux=num[pos];
num[pos]=num[izq];
num[izq]=aux; mov2=mov2+1;
pos=izq;
}
}
} // Aqui termina
if(ini<(pos-1))
{top=top+1;
pilamenor[top]=ini;
pilamayor[top]=pos-1;}
if(fin>(pos+1))
{top=top+1;
pilamenor[top]=pos+1;
pilamayor[top]=fin;}
pas=pas+1;
compt=comp1+comp2;
movt=mov1+mov2;
printf("nntPASADA #%d",pas);
printf("ntCOMPARACIONES: %d",compt);
printf("ntMOVIMIENTOS: %d",movt);
printf("ntAsi queda!!!:");
for(a=0; a<x; a++)
{printf("%d,",num[a]);}
contc=contc+compt;
contm=contm+movt;
compt=0;
movt=0;
}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
textcolor(YELLOW);cprintf("nnNUMEROS ORDENADOS");
for(i=0; i<x; i++)
{printf("nttNumero: %d",num[i]);}
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}
void heapsort(void)
{int a,comp1,mov1,pas,compt,movt,contc,contm;
int comp2,mov2,pas2,compt2,movt2,contc2,contm2;
int i,k,aux,band,padre;
int izq,der,bool,mayor,ap;
textbackground(BLACK);clrscr();
gotoxy(15,1);textcolor(YELLOW);cprintf("ORDENACION POR CREACION DEL MONTICULO (HEAPSORT)");
for(i=0;i<x; i++)
{k=i;
band=1;
while(k>0 && band==1)
{comp1=comp1+1;
if(k%2==0)
{padre=(k/2)-1;}
else{padre=(k-1)/2;}
if(num[k]>num[padre])
{mov1=mov1+1;
aux=num[padre];
num[padre]=num[k];
num[k]=aux;
band=1;
k=padre;
}
else {band=0;}
}
// pas=pas+1;
compt+=comp1;//compt+=comp1;
movt=mov1+mov1;//movt+=mov1
contc=contc+compt;
contm=contm+movt;
compt=0;
movt=0;
comp1=0;
mov1=0;
}
textcolor(YELLOW);printf("nnttt NUMEROS ORDENADOS");
for(i=0; i<x; i++)
{printf("nnttt Numero: %d",num[i]);}
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %dnn",contm);
textcolor(YELLOW);cprintf("nn ORDENCION POR ELIMINACION DEL MONTICULO (HEAPSORT)");
for(i=x-1; i>=1; i--) //i>=1
{ aux=num[i];
num[i]=num[0];//num[0]
izq=1;
der=2;
k=0;
bool=1;
while(izq<i && bool==1)
{comp2=comp2+1;
mayor=num[izq]; //mayor= 56
ap=izq;
if(mayor<num[der] && der!=i) //56>60
{mayor=num[der];
ap=der;}
if(aux<mayor)
mov2=mov2+1;
num[k]=num[ap];
k=ap;
izq=(k*2)+1;
der=izq+1;
}
num[k]=aux;
//}
pas2=pas2+1;
compt2+=comp2;
movt2+=mov2;
contc2=contc2+compt2;
contm2=contm2+movt2;
compt2=0;
movt2=0;
comp2=0;
mov2=0;
}
textcolor(YELLOW);printf("nnttt NUMEROS ORDENADOS");
for(i=0; i<x; i++)
{ printf("nnttt Numero: %d",num[i]);}
printf("nntCOMPARACIONES TOTALES: %d",contc2);
printf("ntMOVIMIENTOS TOTALES: %d",contm2);
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}

void mergesort()
{
//char cad[10];
int comp1,mov1,compt,movt,contc,contm;
textbackground(BLACK);
clrscr();
gotoxy(25,2);textcolor(YELLOW);cprintf("ORDENACION POR MERGESORT");
gotoxy(29,5);printf("ARREGLO ANTES DE ORDENAR");
for(i=0; i<x; i++) {
printf("nnttt NUMER0 %d: %dn",i,num[i]);}
// llamada al metodo mergesort
MergeSort(num,x);
printf("nnttttNUMEROS ORDENADOS");
for (i=0; i<x; i++) {
printf("nnttt NUMERO %d: %dn",i,num[i]);
}
delete [] num;
compt+=comp1;
movt=mov1+mov1;
contc=contc+compt;
contm=contm+movt;
compt=0;
movt=0;
comp1=0;
mov1=0;
printf("nntCOMPARACIONES TOTALES: %d",contc);
printf("ntMOVIMIENTOS TOTALES: %d",contm);
printf("nnttPresione ENTER para ver el tiempo de ejecucion");
getch();
}

void MergeSort(int vect[], int x)
{int *aux = new int[x];
for (int k=1; k<x; k*=2) {
for (int j = 0; j<=x-k; j+=2*k)
Merge(vect+j, vect+j+k, aux+j, k, k);
for (j = 0; j < x; ++j)vect[j] = aux[j];
}
delete [] aux;
} //fin de mergesort()
void Merge(int *a,int *b,int *c,int na,int nb)
{ int i=0, j=0, k=0;
// copiar ordenadamente a y b sobre c
while (i<na && j<nb) {
if (a[i] < b[j]) c[k++] = a[i++];
else c[k++] = b[j++];
}// copiar el resto del vector a
while (i < na) c[k++] = a[i++];
// copiar el resto del vector b
while (j < nb) c[k++] = b[j++];
} // fin de merge()
//GRAFICA
void graph()
{
int i;
clrscr();
gotoxy(20,5);textcolor(WHITE);cprintf("* * HISTOGRAMA * *");
for(i=10;i<27;i++)
{
gotoxy(10,i);printf("*"); //IZQUIERDA
}
gotoxy(10,27);printf("-");//ABAJO ESQUINA//10

for(i=11;i<45;i++)
{
gotoxy(i,27);
printf("*");
}
//burbuja//5 //28
gotoxy(5,((28-total_time.burbuja)+1));textcolor(BLACK);cprintf("%.2f ",((total_time.burbuja)/10));
for(i=26;i>(28-total_time.burbuja);i--)
{ //26
gotoxy(12,i); //12
textcolor(BLACK);cprintf("██"); //alt +219 para trazar la s barras
}
textcolor(BLACK);gotoxy(11,29);cprintf("BUR");//13,29
//burbuja con seĄal
gotoxy(5,((28-total_time.senal)+1));textcolor(WHITE);cprintf("%.2f ",((total_time.senal)/10));
for(i=26;i>(28-total_time.senal);i--)
{
gotoxy(15,i);
textcolor(WHITE);cprintf("██");
}
textcolor(WHITE);gotoxy(15,29);cprintf("SEą");
//sacudida
gotoxy(5,((28-total_time.sac)+1));textcolor(GREEN);cprintf("%.2f ",((total_time.sac)/10));
for(i=26;i>(28-total_time.sac);i--)
{
gotoxy(18,i);
textcolor(GREEN);cprintf("██");
}
textcolor(GREEN);gotoxy(18,29);cprintf("SAC");
//insercion
gotoxy(5,((28-total_time.insercion)+1));textcolor(WHITE);cprintf("%.2f ",((total_time.insercion)/10));
for(i=26;i>(28-total_time.insercion);i--)
{
gotoxy(21,i);
textcolor(WHITE);cprintf("██");
}
textcolor(WHITE);gotoxy(21,29);cprintf("INSE");
//insercion binaria
gotoxy(5,((28-total_time.binaria)+1));textcolor(RED);cprintf("%.2f ",((total_time.binaria)/10));
for(i=26;i>(28-total_time.binaria);i--)
{
gotoxy(24,i);
textcolor(RED);cprintf("██");
}
textcolor(RED);gotoxy(24,29);cprintf("BIN");
//seleccion directa
gotoxy(5,((28-total_time.sel_directa)+1));textcolor(MAGENTA);cprintf("%.2f ",((total_time.sel_directa)/10));
for(i=26;i>(28-total_time.sel_directa);i--)
{
gotoxy(27,i);
textcolor(MAGENTA);cprintf("██");
}
textcolor(MAGENTA);gotoxy(27,29);cprintf("DIR");
//shell
gotoxy(5,((28-total_time.shell)+1));textcolor(BROWN);cprintf("%.2f ",((total_time.shell)/10));
for(i=26;i>(28-total_time.shell);i--)
{
gotoxy(30,i);
textcolor(BROWN);cprintf("██");
}
textcolor(BROWN);gotoxy(30,29);cprintf("SHELL");
//quicksort
gotoxy(5,((28-total_time.quick)+1));textcolor(LIGHTGRAY);cprintf("%.2f ",((total_time.quick)/10));
for(i=26;i>(28-total_time.quick);i--)
{
gotoxy(33,i);
textcolor(LIGHTGRAY);cprintf("██");
}
textcolor(LIGHTGRAY);gotoxy(33,29);cprintf("QUICK");
//heapsort
gotoxy(5,((28-total_time.sort)+1));textcolor(DARKGRAY);cprintf("%.2f ",((total_time.sort)/10));
for(i=26;i>(28-total_time.sort);i--)
{
gotoxy(36,i);
textcolor(DARKGRAY);cprintf("██");
}
textcolor(DARKGRAY);gotoxy(36,29);cprintf("HEAP");
//mergesort
gotoxy(5,((28-total_time.merge)+1));textcolor(YELLOW);cprintf("%.2f ",((total_time.merge)/10));
for(i=26;i>(28-total_time.merge);i--)
{
gotoxy(39,i);
textcolor(YELLOW);cprintf("██");
}
textcolor(YELLOW);gotoxy(39,29);cprintf("MERGE");
getch();
}