organization in the src structure, modification of README

This commit is contained in:
Mari Wahl 2015-01-06 18:30:04 -05:00
parent c2ca11f247
commit 6afe96fa4d
165 changed files with 64 additions and 184 deletions

View File

@ -11,7 +11,7 @@ This repository contains a comprehensive study on Algorithms & Data Structures i
src/ src/
── abstract_structures ── abstract_structures
├── heap ├── heap
@ -21,33 +21,19 @@ src/
└── stacks └── stacks
├── builtin_structures └── builtin_structures
├── arrays_and_strings
├── dicts ├── dicts
├── lists ├── lists_and_strings
├── numbers ├── numbers
├── sets ├── sets
├── strings
└── tuples └── tuples
├── graphs_and_trees └── trees
├── trees
├── programming_paradigms
├── dynamic_programming
├── modules
└── oop
└── searching_and_sorting └── searching_and_sorting
@ -57,6 +43,8 @@ src/
└── Extra Interview Problems └── Extra Interview Problems
└── USEFUL
---- ----
## Installation ## Installation

View File

@ -1,5 +1,9 @@
#!/usr/bin/python
__author__ = "bt3"
''' '''
The doctest module automatically runs any statement begining with >>> The doctest module automatically runs any statement beginning with >>>
and compares the following line with the output from the interpreter. and compares the following line with the output from the interpreter.
>>> 1 == 1 >>> 1 == 1

View File

@ -1,11 +1,12 @@
#!/usr/bin/python3 #!/usr/bin/python
# mari von steinkirch @2013
# steinkirch at gmail __author__ = "bt3"
''' a simple example of how to time a function '''
import time import time
def sumOfN2(n): def sumOfN2(n):
''' a simple example of how to time a function '''
start = time.time() start = time.time()
theSum = 0 theSum = 0
for i in range(1,n+1): for i in range(1,n+1):

View File

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
# mari von steinkirch @2013
# steinkirch at gmail __author__ = "bt3"
from functools import wraps from functools import wraps
@ -20,7 +20,7 @@ def memo(func):
def find_fibonacci_seq_rec(n): def find_fibonacci_seq_rec(n):
''' implements the nth fibonacci value in a recursive exponential runtime ''' ''' implements the nth fibonacci value in a recursive exponential runtime '''
if n < 2: return n if n < 2: return n
return find_fibonacci_seq_rec(n - 1) + find_fibonacci_seq_rec(n - 2) return find_fibonacci_seq_rec(n - 1) + find_fibonacci_seq_rec(n - 2)
def test_memo(): def test_memo():
n = 50 n = 50
@ -31,9 +31,9 @@ def test_memo():
if __name__ == '__main__': if __name__ == '__main__':
test_memo() test_memo()

View File

@ -1,7 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
# mari von steinkirch @2013
# steinkirch at gmail
__author__ = "bt3"
from itertools import combinations from itertools import combinations
from bisect import bisect from bisect import bisect
@ -14,7 +13,7 @@ def naive_longest_inc_subseq(seq):
for sub in combinations(seq, length): for sub in combinations(seq, length):
if list(sub) == sorted(sub): if list(sub) == sorted(sub):
return len(sub) return len(sub)
def longest_inc_subseq1(seq): def longest_inc_subseq1(seq):
''' an iterative algorithm for the longest increasing subsequence problem ''' ''' an iterative algorithm for the longest increasing subsequence problem '''
@ -24,8 +23,8 @@ def longest_inc_subseq1(seq):
if idx == len(end): end.append(val) if idx == len(end): end.append(val)
else: end[idx] = val else: end[idx] = val
return len(end) return len(end)
def longest_inc_subseq2(seq): def longest_inc_subseq2(seq):
''' another iterative algorithm for the longest increasing subsequence problem ''' ''' another iterative algorithm for the longest increasing subsequence problem '''
L = [1] * len(seq) L = [1] * len(seq)
@ -51,17 +50,17 @@ def memoized_longest_inc_subseq(seq):
@benchmark @benchmark
def test_naive_longest_inc_subseq(): def test_naive_longest_inc_subseq():
print(naive_longest_inc_subseq(s1)) print(naive_longest_inc_subseq(s1))
benchmark benchmark
def test_longest_inc_subseq1(): def test_longest_inc_subseq1():
print(longest_inc_subseq1(s1)) print(longest_inc_subseq1(s1))
@benchmark @benchmark
def test_longest_inc_subseq2(): def test_longest_inc_subseq2():
print(longest_inc_subseq2(s1)) print(longest_inc_subseq2(s1))
@benchmark @benchmark
def test_memoized_longest_inc_subseq(): def test_memoized_longest_inc_subseq():
print(memoized_longest_inc_subseq(s1)) print(memoized_longest_inc_subseq(s1))
@ -73,9 +72,9 @@ if __name__ == '__main__':
test_longest_inc_subseq1() test_longest_inc_subseq1()
test_longest_inc_subseq2() test_longest_inc_subseq2()
test_memoized_longest_inc_subseq() test_memoized_longest_inc_subseq()

View File

@ -1,6 +1,8 @@
#!/usr/bin/python3 #!/usr/bin/env python
# mari von steinkirch @2013
# steinkirch at gmail
__author__ = "bt3"
import os import os
import sys import sys
@ -12,12 +14,12 @@ def change_file_ext():
print("Usage: change_ext.py filename.old_ext 'new_ext'") print("Usage: change_ext.py filename.old_ext 'new_ext'")
sys.exit() sys.exit()
name = os.path.splitext(sys.argv[1])[0] + "." + sys.argv[2] name = os.path.splitext(sys.argv[1])[0] + "." + sys.argv[2]
print (name) print (name)
try: try:
shutil.copyfile(sys.argv[1], name) shutil.copyfile(sys.argv[1], name)
except OSError as err: except OSError as err:
print (err) print (err)

View File

@ -1,4 +1,8 @@
#!/usr/bin/python #!/usr/bin/python
__author__ = "bt3"
import collections import collections
import string import string
import sys import sys

View File

@ -1,9 +1,14 @@
#!/usr/bin/python #!/usr/bin/python
__author__ = "bt3"
import collections import collections
import sys import sys
def count_unique_word_freq(): def count_unique_word_freq():
return collections.Counter(sys.stdin.read().lower().split()).most_common(n) return collections.Counter(\
sys.stdin.read().lower().split()).most_common(n)
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -1,6 +1,7 @@
#!/usr/bin/python3 #!/usr/bin/env python
# mari von steinkirch @2013
# steinkirch at gmail
__author__ = "bt3"
import sys import sys
@ -13,7 +14,7 @@ def grep_word_from_files():
if word in line: if word in line:
print("{0}:{1}:{2:.40}".format(filename, lino, line.rstrip())) print("{0}:{1}:{2:.40}".format(filename, lino, line.rstrip()))
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) < 2: if len(sys.argv) < 2:
print("Usage: grep_word_from_files.py word infile1 [infile2...]") print("Usage: grep_word_from_files.py word infile1 [infile2...]")

View File

@ -1,6 +1,7 @@
#!/usr/bin/python3 #!/usr/bin/env python
# mari von steinkirch @2013
# steinkirch at gmail
__author__ = "bt3"
@ -46,8 +47,8 @@ def remove_blank_lines():
lines = read_data(filename) lines = read_data(filename)
if lines: if lines:
write_data(lines, filename) write_data(lines, filename)
if __name__ == '__main__': if __name__ == '__main__':
remove_blank_lines() remove_blank_lines()

Some files were not shown because too many files have changed in this diff Show More