def all_algorithms(cls):
    """
    Finds all algorithms that are available and executable.
    :param cls: Base class (for recursive call)
    :return: List of all algorithm classes.
    """
    subclasses = [s for c in cls.__subclasses__() for s in all_algorithms(c)]
    unique_subclasses = set(cls.__subclasses__()).union(subclasses)
    unique_list = list(unique_subclasses)
    exclude_invalid = [c for c in unique_list if c.__name__ != "Visual"]
    exclude_invalid.sort(key=lambda c: c.__name__)
    return exclude_invalid