Squashed 'external/algorithms/' changes from 5b84025..f91fcfe


git-subtree-dir: external/algorithms
git-subtree-split: f91fcfeb42b9fffd150068e9bfd3b65e2eb6e683
merge algorithms develop branch