from sort_list import sort_list def dichotomie(liste: list, element: any,bypass_sorting = False)->bool: """This function return return True if element is in liste False else Args: liste (list): the array to examinate element (any): the element to find into liste bypass_sorting (bool, optional):If True, skips sorting the list. Defaults to False. Returns: bool: True if present False else """ if liste == []: return False assert type(element) == type(liste[0]), "Wrong type between liste and element" # On estime que la liste contient un seul et unique type... if bypass_sorting == False: liste = sort_list(liste) N, start, find,i = len(liste)-1, 0, False, 0 end = N while (find != True) and (start <= end): middle = (start + end)//2 if liste[middle] == element: find = True elif element > liste[middle]: start = middle+1 else: end = middle - 1 return find