types of algorithms in computing