Skip to content

Instantly share code, notes, and snippets.

@albarralnunez
Created August 22, 2017 10:13
Show Gist options
  • Save albarralnunez/d62c6a7011bc8353f1b0afcf4b91f246 to your computer and use it in GitHub Desktop.
Save albarralnunez/d62c6a7011bc8353f1b0afcf4b91f246 to your computer and use it in GitHub Desktop.
test_speed_mxdiflg.py
import time
def mxdiflg1(a1, a2):
if a1 and a2:
return max(
len(max(a1, key=len)) - len(min(a2, key=len)),
len(max(a2, key=len)) - len(min(a1, key=len)))
return -1
def min_max_len(xs):
min = max = len(xs[0])
for x in xs[1:]:
if len(x) > max:
max = len(x)
if len(x) < min:
min = len(x)
return min, max
def mxdiflg2(a1, a2):
if not (a1 and a2):
return -1
a1_min, a1_max = min_max_len(a1)
a2_min, a2_max = min_max_len(a2)
return max([a2_max - a1_min, a1_max - a2_min])
s1 = ["hoqq", "bbllkw", "oox", "ejjuyyy", "plmiis", "xxxzgpsssa", "xxwwkktt", "znnnnfqknaz", "qqquuhii", "dvvvwz"]
s2 = ["cccooommaaqqoxii", "gggqaffhhh", "tttoowwwmmww"]
s3 = ['ejjjjmmtthh', 'zxxuueeg', 'aanlljrrrxx', 'dqqqaaabbb', 'oocccffuucccjjjkkkjyyyeehh']
s4 = ['bbbaaayddqbbrrrv']
s5 = ['fdksjafklasjdf', 'asdfasd', 'dfasdfkasjdklfjasdkljfaklsddsdkfjsldfa', 'adf', 'ffws', 'a', 'fkwjeifjwiqdfjaiowjiofjdijfkoajsdkljfwiofjiowjafiwjfi', 'dsw', 'flajkwlfkad']
s6 = ['kfs', 'fkwekfadfsdfsadfasdfkwjklfjw', 'fkjkajkfjwkafkljjfw', 'wfakwjfkljdasjkfjw', 'wfasdfwfadsd', 'dwfwfawfwafawefwefadkjfasdklfaskdjfkasdjfksjdkfljsdkfjklsjdfl', 'sfdsjkfwa']
test_values = [(s1, s2), (s3, s6), (s4, s5), (s1, s6)]
times_execution_mxdiflg1 = []
times_execution_mxdiflg2 = []
for _ in xrange(100000):
for value1, value2 in test_values:
t1 = time.time()
mxdiflg1(value1, value2)
times_execution_mxdiflg1.append(time.time()-t1)
t1 = time.time()
mxdiflg2(value1, value2)
times_execution_mxdiflg2.append(time.time()-t1)
mxdiflg1_mean = sum(times_execution_mxdiflg1) / float(len(times_execution_mxdiflg1))
mxdiflg2_mean = sum(times_execution_mxdiflg2) / float(len(times_execution_mxdiflg2))
print('mxdiflg1(build in min max): %s' % mxdiflg1_mean)
print('mxdiflg2(custom_min_max): %s' % mxdiflg2_mean)
print('Improve of: %s' % (mxdiflg2_mean/mxdiflg1_mean))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment