Exercises on algorithms
SSvsBS.py - Python implementation of both linear and binary search algorithms with runtime comparison
Search.java - Java implementation of both linear and binary search algorithms with runtime comparison
selectionSort.py - Python implementation of selection sort algo
qsort.py - Python implementation of Quicksort with pivot as the middle element in each subarray
rsum.py - recursive function to sum up all elements of a list
rlen.py - recursive function to return the lenght of a list
bfs.py - implementation of Breadth-First Search using python dictionary to model connections in a directed graph
dijk.py - Dijkstra's pathfinding in Python, using dictionaries
UnionFind - a set of algorithms for Dynamic Connectivity Problem, in Java; Quick Find, Quick Union, and QU improvements
DynamicConnectivity - added new algorithm for Dynamic Connectivity Problem - Quick Union; added basic inheritance for convenience; from now on this folder will be updated
permutate.js - JS algorithm for string permutation - no duplicates in the output array. E.g. perm. of "ABCD" has 24 elements (4!) and perm. of "ABCC" has only 12 (4! / 2)
matching_brackets.rb / .py not-so-clever algorithm to ensure matching brackets: all (, { and [ in strings, made as a part of recruitment task
euclid.rb - Euclid's largest common divisor algorithm