You might find interval runs more useful. Basically run at a fast pace (the sort you'd use if you were running an 800m race) for about a minute, then jog or walk for a minute, then repeat.
Personally, I do a 5k every week, a 1-hour gym session a week (about 20-30 minutes of that is cardio, mostly interval stuff) and a 30-40 minute swim a week. For me, that's enough to keep my 5k within the 20-21 minute range. But different people will respond differently to training.