With difficulty. The formatting and styles of names are many and varied, more so if you include international names.
John Smith
John D Smith
John de Smith
Mary Ann Smith
John Smith-Jones
John Smith Jones (both double barrelled forms exist in the UK, at least)
Parsing "John Smith Jones" or even "John de Smith" and "Mary Ann Smith", all three-part names, is difficult.
The best that I reckon you could "easily" do is to tackle the easy ones first.
Chop of any recognsiable Prefix and Suffixes that you can - "Mr", "Mrs" etc. off the front and "Junior", "Jnr", "III" etc. off the end. Have a list of Prefixes and Suffixes so that, as you refine the list of "can't process these" you can add more to that list, and re-run the job - each time getting fewer exceptions left at the end.
All 2-part names, for example, are assumed to be First / Last.
Then deal with 3-part names looking at what the middle name is. If it is a single letter then assume that is a middle initial. If it is "de" "van" etc. then its part of the surname.
Perhaps use a table of recognised First Names to try to separate them off the front. But "George" is both and first and a last name here, so that may not be much help.