may have done
表示对发生过的事情的推测,意思是“可能已经”或“也许已经”,用于肯定句中。
What has happened to George?
I don't know.He may have got lost.
乔治发生了什么事?
我不知道,他可能迷路了。
might have done
表示对过去事情的推测,might与may意思相同,但可能性更小,多用于虚拟语气结构中,
He might have given you more help,even though he was busy.
他或许会多给你一些帮助,即使他很忙。