merge_modified.c |
| #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <time.h> extern void merge_sort(int *newa, int *a, int n); int rand(void); //#define length 10000 int insert; void *str_malloc(size_t s){ void *result = malloc(s); if(NULL == result){ fprintf(stderr, "Memory allocation failed\n"); exit(EXIT_FAILURE); } return result; } main(int argc, char **argv){ clock_t t1, t2; int *a; int *newa; int i=0, length; insert = atoi(argv[1]); length = atoi(argv[2]); // insert = 12; //printf("Please input the array size:\n>"); //scanf("%d", &length); a = str_malloc(length * sizeof i); newa = str_malloc(length * sizeof i); // merge sort c version /* for(i=0; i<=length; i++){ */ /* a[i]=rand(); */ /* } */ while(1== scanf("%d", &a[i]) && i < length){ i++; } t1= clock(); merge_sort(newa,a,i-1); t2= clock(); fprintf(stderr,"%d\t%f\n",i,(t2-t1)/(double)CLOCKS_PER_SEC); // for(i=0; i<length; i++){ // printf("%d\t%d\n",i,a[i]); // } return EXIT_SUCCESS; } int rand(){ static int rand_seed=10; rand_seed = rand_seed *1103515245+12345; return (unsigned int)(rand_seed / 65536) % 100; } |
James Little |