Esempio n. 1
0
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
Esempio n. 3
0
from _algorytmy.utils import ts

st = ts()
w = [0] * 10**6

en = ts()
print(f'{en-st:.6f}s')
Esempio n. 4
0
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')
Esempio n. 5
0
                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