char findMajority(CDataType m[], unsigned left, unsigned right, CDataType *majority) { unsigned mid; if (left == right) { *majority = m[left]; return 1; } mid = (left + right) / 2; if (findMajority(m, left, mid, majority)) if (count(m, left, right, *majority) > (right - left + 1) / 2) return 1; if (findMajority(m, mid + 1, right, majority)) if (count(m, left, right, *majority) > (right - left + 1) / 2) return 1; return 0; }
int main(void) { CDataType majority; CDataType m[MAX] = "AAACCBBCCCBCC"; findMajority(m, 13, &majority); printf("Мажорант: %c\n", majority); return 0; }
int main() { CDataType majority; if (findMajority("AAACCBBCCCBCC", 13, &majority)) printf("Мажорант: %c\n", majority); else printf("Няма мажорант.\n"); return 0; }