Fastest way to sort 3 values in Java [closed]
Solution 1:
bubble sort would have only 3 compare ops, and 6 assignments at worst case (it will be very similar if not identical to the behavior of insertion sort in this case):
if (a > b)
swap(a,b)
if (b > c)
swap(b,c)
if (a > b)
swap(a,b)
print a,b,c
It cannot be done in less then 3 compares because there are n!=6
possible permutations for the array, and ceil(log_2(n!)) = 3
Solution 2:
There is no point in optimizing this. It will not gain any speed. O(n!) for 3 is still only 3*2 = 6 operations. Even O(2^n) is going to be 8. You could really do whatever it takes to sort these 3 values and not see a difference in performance.
edit
int a, b, c, min, max, med;//assume values are there for a b c
if( a > b ){
if( a > c ){
max = a;
if( b > c ){
med = b;
min = c;
}else{
med = c;
min = b;
}
}else{
med = a;
max = c;
min = b;
}
}else{
if( b > c ){
max = b;
if( a > c ){
med = a;
min = c;
}else{
med = c;
min = a;
}
}else{
med = b;
max = c;
min = a;
}
}