void swap(int *a,int *b){ int t = *a ; *a = *b ; *b = t ; } void get_min(int *arr,int *ix,int ix_size,int max_ix_val,int *min_val,int *min_ix){ int min_value = MAX_VAL ; int min_index = 0 ; int i = 0 ; for (i=0;i=(max_ix_val*(i+1))) continue ; if (min_value>arr[ix[i]]){ min_value = arr[ix[i]] ; min_index = i ; } } *min_val = min_value ; *min_ix = min_index ; } void merge(int *in_arr,int in_size,int num_proc,int * out_arr){ int *ix_arr=(int *) malloc(num_proc*sizeof(int)) ; int i,min_val,min_ix ; for (i=0;i=end) return ; for (i=end;i>begin;i--){ for (j=begin;jarr[j+1]) swap(arr+j,arr+j+1) ; } } }