Está en la página 1de 2

/* CURSO DE AN LISIS DE ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD NACIONAL AUTNOMA DE MXICO INSTRUCTOR: CARLOS ROBERTO ALVAREZ BARRAG N 25 DE JULIO

DEL 2011 INSERTION SORT */ #include <stdio.h> #include <time.h> #include <stdlib.h> int * insertionsort(int *A, int n) { int i=0, j, llave; for(j=1;j<n;j++) { llave=A[j]; i=j-1; while(i>=0&&A[i]>llave) { A[i+1]=A[i]; A[i]=llave; i=i-1; } } } void main(char argc, char **argv) { FILE *entrada; int n, *A, i; clock_t end, start;//variables utilizadas para calcular el tiempo if(argv[1]!=NULL) entrada = fopen(argv[1],"r");//abrimos el archivo que es else{ printf("Es necesaria una archivo de texto como entrada\n"); exit(1); }

fscanf(entrada,"%d",&n);//leemos cantidad de datos A=(int *)malloc(n*sizeof(int));//reservamos memoria para crear el arreglo printf("Datos: %d \n",n); getchar(); //ciclo que lee los datos del archivo mientras no se llegue al final del arreglo o del archivo: for(i=0;i<n;i++) { fscanf(entrada,"%d",&A[i]); if(feof(entrada))//en caso de que el usuario ponga menos datos de los indicados inicialmente break; printf("%d\n",A[i]); } fclose(entrada); if(i!=n) n=i; start = clock();//inicia ordenamiento insertionsort(A, n);//funcin que deseamos evaluar. end = clock();//fin del ordenamiento printf("Tiempo: %.20f\n", (double)(end - start) / CLOCKS_PER_SEC);//tiempo requerido en segundos getchar(); printf("Ordenado\n");//mostramos arreglo ordenado for(i=0;i<n;i++) printf("%d\n",A[i]); }

También podría gustarte