coursera-data-structures-algorithms
coursera-data-structures-algorithms copied to clipboard
Coursera: Data Structures and Algorithms Specialization
======================================================= Coursera: Data Structures and Algorithms Specialization
Programming assignments for Data Structures and Algorithms Specialization <https://www.coursera.org/specializations/data-structures-algorithms>_.
Algorithmic Toolbox <https://www.coursera.org/learn/algorithmic-toolbox/>_
Introduction
#. Small Fibonacci Number <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/introduction/fib.py>_
#. The Last Digit of a Large Fibonacci Number <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/introduction/fibonacci_last_digit.py>_
#. Greatest Common Divisor <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/introduction/gcd.py>_
#. Least Common Multiple <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/introduction/lcm.py>_
#. Huge Fibonacci Number modulo m <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/introduction/fibonacci_huge.py>_
Greedy algorithms
#. Changing Money <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/greedy-algorithms/change.py>_
#. Fractional Knapsack <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/greedy-algorithms/fractional_knapsack.py>_
#. Covering Segments by Points <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/greedy-algorithms/covering_segments.py>_
#. Pairwise Distinct Summands <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/greedy-algorithms/different_summands.py>_
Divide and conquer
#. Binary Search <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/divide-and-conquer/binary_search.py>_
#. Majority Element <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/divide-and-conquer/majority_element.py>_
#. Sorting: 3-Way Partition <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/divide-and-conquer/sorting.py>_
#. Number of Inversions <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/divide-and-conquer/inversions.py>_
#. Points and Segments <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/divide-and-conquer/points_and_segments.py>_
Dynamic programming
#. Primitive Calculator <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/dynamic-programming/primitive_calculator.py>_
#. Take as Much Gold as Possible <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/dynamic-programming/knapsack.py>_
#. Compute the Edit Distance Between Two Strings <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/dynamic-programming/edit_distance.py>_
#. Maximize the Value of an Arithmetic Expression <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/dynamic-programming/placing_parentheses.py>_
#. Longest Common Subsequence of Three Sequences <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/algorithmic-toolbox/dynamic-programming/lcs3.py>_
Data Structures <https://www.coursera.org/learn/data-structures/>_
Basic Data Structures
#. Check brackets in the code <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/basic/check_brackets.py>_
#. Compute tree height <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/basic/tree-height.py>_
#. Network packet processing simulation <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/basic/process_packages.py>_
Priority Queues and Disjoint Sets
#. Convert array into heap <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/priority-queues-and-disjoint-sets/build_heap.py>_
#. Parallel processing <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/priority-queues-and-disjoint-sets/job_queue.py>_
#. Merging tables <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/priority-queues-and-disjoint-sets/merging_tables.py>_
Hash Tables and Hash Functions
#. Phone book <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/hash-tables/phone_book.py>_
#. Hashing with chains <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/hash-tables/hash_chains.py>_
#. Find pattern in text <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/hash-tables/hash_substring.py>_
Binary Search Trees
#. Binary tree traversals <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/binary-search-trees/tree-orders.py>_
#. Set with range sums <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/binary-search-trees/set_range_sum.py>_
#. Rope <https://github.com/ivankliuk/coursera-data-structures-algorithms/blob/master/data-structures/binary-search-trees/rope.py>_