coursera-data-structures-algorithms icon indicating copy to clipboard operation
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>_