Selecting the right type of algorithm for various applications