Bash Dominator
dominator() {
    local -n _a="$1"
    local _size=0 _value=0 _count=0 _index=0
    local _k _v
    for _k in "${!_a[@]}"; do
        _v=${_a[$_k]}
        if (( _size == 0 )); then
            ((_size++))
            _value=$_v
            _index=$_k
        elif (( _value != _v )); then
            ((_size--))
        else
            ((_size++))
        fi
    done
    local _candidate
    if (( _size > 0 )); then _candidate=$_value; else _candidate=-1; fi
    _count=0
    for _v in "${_a[@]}"; do
        if (( _v == _candidate )); then ((_count++)); fi
    done
    if (( _count <= ${#_a[@]} / 2 )); then
        _index=-1
    fi
    echo "$_index"
}

This finds a value that appears in more than half of the array, then returns one valid index for it.