#include "crearreglo.h" #include "grafica.h" #include "insertion.h" #include "merge_sort.h" #include "heapsort.h" #define NULL 0 int main(int argc,char *argv[]) { int i=0,k=1,SIZE=0; int *inicial,*parcial,*final; /*Reconoce el parametro de entrada, si es erroneo exit(0)*/ if(argc!=2) {printf("...error de entrada\n");exit(0);} while (*(argv[1]+i)!='\0') i++; while(i>0) { SIZE=SIZE+(*(argv[1]+(--i))-48)*k;k=k*10;} /*pide arreglo de tamaņo SIZE */ inicial=crearreglo(SIZE); /* realiza dos copias del arreglo anterior*/ parcial=copiarreglo(NULL,inicial,SIZE); final=copiarreglo(NULL,inicial,SIZE); /* un arreglo devuelto por la funcion insertion contiene los datos ordenados parcialmente (*parcial).*final apunta al arreglo que contiene los datos completamente ordenados*/ insertion_2(parcial,final,SIZE); /*escribe los tres arreglos en el archivo insertion.diag*/ escribe(inicial,parcial,final,SIZE,"insertion.diag"); /* realiza mismo proceso anterior para algoritmo merge*/ copiarreglo(final,inicial,SIZE); mergesort_2(parcial,final,SIZE,final,SIZE); escribe(inicial,parcial,final,SIZE,"merge.diag"); /*realiza mismo proceso anterior para algoritmo heapsort*/ copiarreglo(final,inicial,SIZE); heapsort_2(parcial,final,SIZE); escribe(inicial,parcial,final,SIZE,"heap.diag"); /*grafica los tres archivos*/ grafica(); free(inicial); free(parcial); free(final); }