Your compare method is supposed to return a positive answer if a > b, zero if the two are the same, and a negative answer if a < b. I can see no way to get a negative answer out of your compare method.
BTW. You will find it quicker to use arithmetic on the char values: you can calculate char1 - char2.
You are using l (don't use small L; it is too easy to confuse with the number 1) as the count of comparisons. But that will give a zero result if you compare the Strings "Camp" and "Campbell."
Initialise your loop counter in the for statement. Initialise your temp value in the if block.