Jack Sam wrote:Could someone look at my method and give me any feedback please? thanks
Right, I assume that what you're trying to do is to get your selection sort to determine the minimum
and maximum remaining values on each pass, correct?
First, your outer loop looks wrong because it will theoretically execute
data.length times, when in fact you only need to execute
data.length/2 times; which is why you have to include a
break statement. Have a think how you might write it so that you don't need that
break.
Second: The business of finding the minimum and maximum values is independent of what you want to do with them (ie, swap), so my advice would be to remove that function to a separate method, for example:
The T stuff is just to make it generic, so it can be used with with any
Comparable type. If you don't follow it at the moment, just replace all the T's with
String and remove the '
<T extends Comparable<? super T>>' altogether.
You'll also notice that I made the 'end' index
exclusive. It's not required, but when dealing with ranges you'll find that it makes a lot of things easier. If you look at foundation class methods that deal with ranges (eg,
String.subString()) they almost always follow this
pattern.
Do you see how a method like that might simplify your sorting loop?
HIH
Winston
PS: Welcome to JavaRanch.