Easy to devise: It is easier to come up with a greedy approach (or even multiple greedy algorithms) for a single problem than computing solutions via other ways like binary search, dynamic or functional programming.
Compute the running time complexity: Analyzing the run time for greedy algorithms will generally be simpler than other techniques like traversals of trees, graph algorithms or divide & conquer. For the divide and conquer method, it is not clear whether the technique is fast or slow? It is because, at each recursion call, the size of the problem shrinks, while the number of subproblems increases.
Un-optimized solution: One of the major disadvantages of the ‘greedy’ approach is that initially, you might take a smaller step that leads to one big step that costs the maximum. And hence, the final solution can never be optimized.
Proof of correctness: For greedy algorithms, it is harder to understand the correctness issues of a solution. Even with the correct algorithm, it is hard to prove why it is correct. While proving the correctness of a greedy algorithm, it requires a good deal of effort and patience. Moreover, the methods like proof of correctness via contradiction are used for this purpose.