void ssort(struct TablaMerge arr, struct TablaMerge arrAux, int lo, int hi) { if(lo >= hi) return; int mid = (lo + hi)/2; ssort(arr, arrAux, lo, mid); ssort(arr, arrAux, mid+1, hi); mmerge(arr, arrAux, lo, mid, hi); }
int mmerge_process (SequenceList list, int *super, int (*majority)(Sequence **, int, int *, int, int *, int **, int *)) { Sequence *node; Sequence **seq; int n; int i; int alphabet[MAX_ALPHABET_SIZE], alpha_len; alpha_len = get_alphabet_set(list, alphabet); n = get_size(list); seq = (Sequence**) malloc (n * sizeof(Sequence*)); node = list; i = 0; while(node) { seq[i++] = create_sequence (node->seq, node->len); node = node->next; } return mmerge(seq, n, alphabet, alpha_len, majority, super); }