Record List : Fastest century & Fifty in One day International cricket.
AB de Villiers broke Corey Anderson's record of fastest one day century. For over 17 years (6298 days to be precise), Shahid Afridi of Pakistan held the record of fastest century in ODI cricket, thrashing Sri Lankans at Nairobi and reaching the milestone off just 37 balls before Corey Anderson of New Zealand made a thrilling start to year 2014, bettering the near impossible record by one ball. And then, AB de Villiers arrived at probably the fastest scoring ground in the World = Wanderers in Johannesburg..

Given a solid platform where openers had added 247 runs, AB promoted himself, hit his first ball for a four and added 11 sixes soon after, changing the record books, probably for the final time (no one can reach a century for less than 31 balls, can someone?). AB also has made hundreds off 52 balls, 58 balls and 66 balls, proving he's the most dangerous batsman in World cricket right now.

In following, we have the list of fastest century (less than 60 balls), followed by fastest century for respective countries..

Record of fastest ODI fifty is held by Sanath Jayasuriya, for his 17 balls knock way back in 1996, only equaled by Brendon McCullum..

Also see : Highest ODI scores.
Fastest century by a batsman in one day Internationals
Batsman (Country) Score Balls 4s 6s Versus Mon/Yr
AB de Villiers (South Africa) 149 31 9 16 West Indies Jan 2015
Corey Anderson (NZ) 131* 36 6 14 West Indies Jan 2014
Shahid Afridi (Pakistan) 102 37 6 11 Sri Lanka Oct 1996
Mark Boucher (SA) 147* 44 8 10 Zimbabwe Sept 2006
Brian Lara (West Indies) 117 45 18 4 Bangladesh Oct 1999
Shahid Afridi (Pakistan) 102 45 10 9 India April 2005
Jesse Ryder (NZ) 104 46 12 5 West Indies Jan 2014
Sanath Jayasuriya (SL) 134 48 11 11 Pakistan April 1996
Kevin O'Brien (Ireland) 113 50 13 6 England March 2011
Glenn Maxwell (Australia) 102 51 10 4 Sri Lanka Mar 2015
AB de Villiers (SA) 162 52 17 8 West Indies Feb 2015
Virat Kohli (India) 100* 52 8 7 Australia Oct 2013
Shahid Afridi (Pakistan) 124 53 17 4 Bangladesh June 2010
Sanath Jayasuriya (SL) 130 55 16 6 Bangladesh June 2008
James Faulkner (Australia) 116 57 11 5 India Nov 2013
AB de Villiers (SA) 102* 58 11 3 India Feb 2010
Virender Sehwag (India) 125* 60 14 6 New Zealand Mar 2009
Jos Buttler (England) 121 61 11 4 Sri Lanka May 2014
Fastest century by an Indian batsman in ODIs
Virat Kohli 100* 52 8 7 Australia Oct 2013
Virender Sehwag 125* 60 14 6 New Zealand Mar 2009
Virat Kohli 115* 61 16 1 Australia Oct 2013
Fastest century by an Australian batsman in ODIs
Glenn Maxwell 102 51 10 4 Sri Lanka Mar 2015
James Faulkner 116 57 11 5 India Nov 2013
Mathew Hayden 101 66 14 4 South Africa Mar 2007
Fastest century by an England batsman in ODIs
Jos Buttler 121 61 11 4 Sri Lanka May 2014
Jos Buttler 129 66 13 5 New Zealand Jun 2015
Kevin Pietersen 100* 69 7 4 South Africa Feb 2005
Fastest century by a South African batsman in ODIs
AB de Villiers 149 31 9 16 West Indies Jan 2015
Mark Boucher 147* 44 8 10 Zimbabwe Sept 2006
AB de Villiers 162 52 17 8 West Indies Feb 2015
Fastest century by a Pakistan batsman in ODIs
Shahid Afridi 102 37 6 11 Sri Lanka Oct 1996
Shahid Afridi 102 45 10 9 India April 2005
Shahid Afridi 124 57 17 4 Bangladesh June 2010
Fastest century by a Sri Lankan batsman in ODIs
Sanath Jayasuriya 134 48 11 11 Pakistan Apr 1996
Sanath Jayasuriya 130 55 16 6 Bangladesh June 2008
Sanath Jayasuriya 157* 64 23 1 Holland July 2006
Fastest century by a West Indies batsman in ODIs
Brian Lara 117 45 18 4 Bangladesh Oct 1999
Chris Gayle 112* 69 17 2 Zimbabwe Nov 2003
Kieron Pollard 102 69 5 8 Australia Mar 2012
Fastest century by a New Zealand batsman in ODIs
Corey Anderson 131* 47 6 14 West Indies Jan 2014
Jesse Ryder 104 46 12 5 West Indies Jan 2014
Craig McMillan 117 67 13 5 Australia Feb 2007
Fastest century by a Bangladesh batsman in ODIs
Shakib Al Hasan 104 64 8 4 Zimbabwe Aug 2009
Shakib Al Hasan 105* 68 14 3 Zimbabwe Oct 2009


Note : Balls = is the number of balls that batsman played to complete century.. not of the whole innings, which is mentioned as Runs.

Fastest fifty by a batsman in one day Internationals
Batsman (Country) Score Balls 4s 6s Versus Mon/Yr
Sanath Jayasuriya (Sri Lanka) 76 17 8 5 Pakistan Apr 1996
Brendon McCullum (New Zealand) 77 17 8 7 England Feb 2015
Kusal Perera (Sri Lanka) 68 17 13 2 Pakistan Jul 2015
Glenn Maxwell (Australia) 60 18 3 6 India Nov 2013
Simon O'Donnell (Australia) 74 18 4 6 Sri Lanka May 1990
Shahid Afridi (Pakistan) 55* 18 4 6 Holland Sept 2002
Mark Boucher (South Africa) 51* 19 2 6 Kenya Oct 2001
Justin Kemp (South Africa) 53* 19 2 5 Zimbabwe Feb 2005
Brendon McCullum (NZ) 80* 19 9 6 Bangladesh Dec 2007
Ross Taylor (New Zealand) 59* 19 4 5 Ireland Jul 2008
David Hussey (Australia) 52 19 4 4 West Indies Jul 2008
Shahid Afridi (Pakistan) 65 19 5 5 New Zealand Jan 2011
Shahid Afridi (Pakistan) 77 20 5 6 South Africa Feb 2007
Brendon McCullum (NZ) 52 20 1 5 Canada Mar 2007
Darren Sammy (West Indies) 58* 20 2 6 South Africa May 2010
Angelo Mathews (Sri Lanka) 51 20 1 6 Scotland Mar 2015