Reverse an array
This version of reverse uses two subscripts: one that starts at
the left (beginning) of the array, and one that starts at the right
(end) of the array. You can also use a for loop that goes to the
middle of the array.
//========================================================= reverse
public static void reverse(int[] b) {
int left = 0; // index of leftmost element
int right = b.length-1; // index of rightmost element
while (left < right) {
// exchange the left and right elements
int temp = b[left];
b[left] = b[right];
b[right] = temp;
// move the bounds toward the center
left++;
right--;
}
}//endmethod reverse
A for loop to do this would replace the above 8 statements with these.
Both loops are the same speed, so the choice should be for the
one which is more readable to you.
for (int left=0, int right=b.length-1; left<right; left++, right--) {
// exchange the first and last
int temp = b[left]; b[left] = b[right]; b[right] = temp;
}