def bisection_search1(L, e):
    """
    Implementation 1 for the divide-and-conquer algorithm
    Complexity: O(n log n)
    :param L: List-object
    :param e: Element to look for
    :return: Boolean value if element has been found
    """
    if L == []:
        return False
    elif len(L) == 1:
        return L[0] == e
    else:
        half = len(L) // 2
        if L[half] > e:
            return bisection_search1(L[:half], e)
        else:
            return bisection_search1(L[half:], e)