In One day International cricket (ODI) the fastest century is held by South African batsman AB De Villiers. De Villiers' century came up in just 31 balls against the West Indies in the 2nd ODI at Johannesburg on 18 January 2015. De Villiers' hundred included 8 fours and 10 sixes. Corey Anderson (New Zealand) is second with a 36 ball century against West Indies in Queenstown on 1 January 2014 and Shahid Afridi (Pakistan) is third with his 37 ball century against Sri Lanka in Nairobi on 4 October 1996.
AB de Villiers (South Africa)
Runs- 149
Balls-31
4s- 9 | 6s- 16
Corey Anderson (NZ)
Runs- 131*
Balls-36
4s- 6 | 6s- 14
Shahid Afridi (Pakistan)
Runs- 102
Balls-37
4s- 6 | 6s- 11
Mark Boucher (SA)
Runs- 147*
Balls-44
4s- 8 | 6s- 10
Brian Lara (West Indies)
Runs- 117
Balls-45
4s- 18 | 6s- 4
Shahid Afridi (Pakistan)
Runs- 102
Balls-45
4s- 10 | 6s- 9
Jesse Ryder (NZ)
Runs- 104
Balls-46
4s- 12 | 6s- 5
Sanath Jayasuriya (SL)
Runs- 134
Balls-48
4s- 11 | 6s- 11
etc....