algorithms-php Algorithms and data structures implemented in PHP binary search selection sort recursion quick sort hash table breadth first search dijkstras greedy knn