Skip to content

Commit 963eedc

Browse files
committed
finished names
1 parent 3d2ae39 commit 963eedc

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

names/names.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,29 @@
1111
f.close()
1212

1313
duplicates = []
14-
for name_1 in names_1:
15-
for name_2 in names_2:
16-
if name_1 == name_2:
17-
duplicates.append(name_1)
1814

19-
end_time = time.time()
20-
print (f"{len(duplicates)} duplicates:\n\n{', '.join(duplicates)}\n\n")
21-
print (f"runtime: {end_time - start_time} seconds")
15+
# loops through names 2 for every name in name_1
16+
# loops through 10,000 names 10,000 times
17+
18+
# for name_1 in names_1:
19+
# for name_2 in names_2:
20+
# if name_1 == name_2:
21+
# duplicates.append(name_1)
22+
23+
# runtime: 6.5317909717559814 seconds
24+
25+
# loops through names_2 and checks if it is in names_1_set
26+
# sets have no index or slicing and can hold any type of data
27+
# membership tests are faster in a set because they use a hash table
28+
# so a set will reduce one of our for loops to a O(1) operation
2229

30+
names_1_set = set(names_1)
31+
for name in names_2:
32+
if name in names_1_set:
33+
duplicates.append(name)
34+
35+
# runtime: 0.003815174102783203 seconds
36+
37+
end_time = time.time()
38+
print(f"{len(duplicates)} duplicates:\n\n{', '.join(duplicates)}\n\n")
39+
print(f"runtime: {end_time - start_time} seconds")

0 commit comments

Comments
 (0)