For medium size, its EIGRP (Cisco propritary), because it supports ip classless unlike RIPv1. Although RIPv2 also supports ip classless, it is much more advisable to use EIGRP.
OSPF is also applicable but it is commonly used for large networks.
This assumes your network routing is all Cisco – although you can use other vendors’ switches, which can still work with (standards based) 802.1Q trunking.
That really depends on your definition of “medium-sized” and wheter or not your network is all-Cisco or mixed vendor.
In a smaller, mixed-vedor set-up, Ripv2 is more than fine. For a Slightly larger deployment, single-area OSPF works wonderfully (and OSPF can scale to accomodate network growth)
EIGRP is really great if you are currently, and plan to stay, Cisco-only. Otherwise OSPF is your best option…