Sableye may not have any weaknesses, but it also won't have anything that can take a Swampert or Marshtomp down. That thing is simply too powerful and has a great blend of physical and special moves. You're almost required to take it down with a grass type. Very few non-grass type Pokemon in the game can touch it. Ludicolo just happens to have the right typing.
You have to balance out everything good with everything bad here. You could go with Sableye, but you would be compromising power for immunity from weakness. If you go with Tropius, you can avoid ground attacks but have 4x weakness to Ice Beam. Ludicolo is hit with, at most, 1x anything that family can throw at it, and can deal some damaging blows. The starter, Combusken or Blaziken, will just get owned at the start from either ground or water attacks. Gengar would be great, but getting one in R/S/E is impossible without FR/LG. Legendarys would work, but are 1)cheap and 2)impossible to get this early in the game.
There are several other Pokemon that I could give pros and cons for, but I think I have covered the significant ones as of now. Anyone else can feel free to suggest a valid Pokemon to take on Marshtomp/Swampert, but I doubt anything you can catch ingame can even compare to Ludicolo's advantage here.