mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
organization in the src structure, modification of README
This commit is contained in:
parent
c2ca11f247
commit
6afe96fa4d
24
README.md
24
README.md
@ -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
|
||||||
|
@ -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
|
@ -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):
|
@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
__author__ = "bt3"
|
||||||
|
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import string
|
import string
|
||||||
import sys
|
import sys
|
@ -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__':
|
@ -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...]")
|
@ -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
Loading…
x
Reference in New Issue
Block a user