The ASCII codes are in the correct order. If your doing a sort of text that represents negative numbers, you have to do a reverse sort to make the numbers come out in the right order, which also makes "-" come out before "+". ;)
Would you believe "convert to two's complement and sort"?
I was just pointing out (perhaps too indirectly) that its more complicated that merely getting "+" and "-" in the right order. The direction of sort is differnt for +ve and -ve numbers.