India captain Virat Kohli hailed Rohit Sharma as the "best one-day player around" after the opener's fourth century of the tournament saw the side book their place in the semi-finals of the World Cup with a 28-run win over Bangladesh at Edgbaston on Tuesday.