Advantages:
a) Remove the restriction of a shared secret key between two entities. Here each entity can create a pair of keys, keep the private one, and publicly distribute the other one.
b) The no. of keys needed is reduced tremendously. For one million users to communicate, only two million keys are needed.
Disadvantage:
Calculating the cipher text using the long keys takes a lot of time. So it is not recommended for large amounts of text.