def generate_n_lists(n, m): start = ts() output_lists = [] x = 107 for i in range(n): temp_list = [] for j in range(m): x = (x * 37 + 103) % 1013 temp_list.append(1) output_lists.append(temp_list) end = ts() delta(start, end) return output_lists
def run(N: int, M: int) -> Tuple[float, float]: """ :param N: Długość napisu w którym szukamy :param M: Długość patternu który próbujemy znaleźć :return: """ # generujemy napis i pattern # tekst = 'a' * N + 'sim_annealing' # prosty powtarzający się tekst -- długo zgodny z pattern tekst = ''.join([chr(randint(97, 122)) for _ in range(N) ]) #tekst szybko niezgodny z kazdą pattern pattern = 'a' * M + 'z' st = ts() # przeszukujemy # i = tekst.find(pattern) # używa algorytmu BMH https://stackoverflow.com/questions/681649/how-is-string-find-implemented-in-cpython i = mfind(tekst, pattern) en = ts() return st, en
from _algorytmy.utils import ts st = ts() w = [0] * 10**6 en = ts() print(f'{en-st:.6f}s')
from _algorytmy.utils import ts st = ts() x = 0 for t in range(10 ** 3): w = [0] * (10 ** 6) x += len(w) print(x, f'{ts()-st:.3f}s')
found = True break if found: mi_sublen = sublen else: mx_sublen = sublen sublen = (mi_sublen + mx_sublen) // 2 return sublen # [!!!!!!!!!!!!...................] # ---> O(N * log(N)) letters = 26 LEN = 1600 st = ts() a = random_string(nsymbols=letters, length=LEN) b = random_string(nsymbols=letters, length=LEN) # gg = long(random_string(nsymbols=NS, length=LEN), random_string(nsymbols=NS, length=LEN)) # gg = faster(a, b) gg = fast_hash_solution(a, b) ed = ts() delta(st, ed) """ Simple algo, O(N**3) 100 1.571 200 7.853 300 24.333 400 50.992