Greedy Algorithms: Balancing Speed, Simplicity, and Optimality