"Should have" is indeed correct; "should of", I believe, evolved as an unwitting contraction of the correct pair of words, which is then incorrectly transcribed.
"Should've", according to my sources, is actually a contraction that at worst does not properly exist or at best is not acceptable in semi-formal or more formal usage. "Should have" is spelled out but in speech is often corrupted and contracted. A similar error, of which I find myself often doing and needing to eradicate, is "would have" (not "would've").
Been doing a favour for a friend in reviewing her application letters and selection criteria statements. She has a bit of an issue using commas (usually not enough); I think practice has me taking this for granted as I don't know where to start to cogently explain where one should use commmas.