Revert "Alogorithms"

This reverts commit 4c859012111d58d9c6251980d38a6249b4eb9156.
Revert "Revert "Alogorithms""

This reverts commit bbbf133147a557942822d65cb5b228d1a327ddaf.