Depends on the location - in a desert I will say Crocodile, since it's at marineford Law wins.
I don't understand how you're comparing Smoker to Crocodile. It's almost like comparing Ace to Akainu. Smoker was a vice-admiral, he was strong but no where near top tier. Crocodile on the other hand was a strong shichibukai, when he got sent to Impel Down the WG almost crapped themselves because he was such a big loss to the shichibukai and threatened to ruin the balance between the WG and Yonko.
@ImDictatorBowDown: doflamingo was offering crocodile an alliance that's why he didnt went all out on him. and mihawk went to the war because he had nothing better to do. mihawk is so above crocodile its not even funny he could one shot him just like he one shotted daz.
scratches? he was about to get destroyed by diamond jozu. in fact doflamingo was the one who saved him
@othus12: I'm not saying he would have won his respective bouts, only that he did in fact get a reaction out of them. Law would get trumped by Jozu just as easily, seeing as Jozu fought on par with Aokiji, and Crocodile still came out of the war with very minor injuries. Law does take this but IMO it's just because we haven't seen what Crocodile is truly capable of, it's heavily implied that he is out of his prime by his comments on the New World.
@ImDictatorBowDown: sometimes when someone is just too powerful there's no way you can defeat him no matter how hard you try. take ace for example. he never managed to even land a hit on whitebeard even though he tried to kill him for days.
to put it in another way i dont see arabasta luffy defeating law no matter how hard he tries. with his room open law can deflect a meteor with one finger.