merge_modified.c
contents ::
  merge.c
  merge_modified.c
  merge_proc.c
  merge_sort.c
  merge_sort_s.s

#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