Reverse an array

This reverse method uses two subscripts: one that starts at the left (beginning, top) of the array, and one that starts at the right (end, bottom) of the array.

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ``` ```//========================================================= reverse1 public static void reverse1(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--; } } ```

A for loop managing two indexes is shown below. Both loops are the same speed, so the choice should be for the one which is more readable to you. I personally find for loops with several variables difficult to read, so usually avoid them.

 ``` 1 2 3 4 5 6 7 8 9 ``` ```//========================================================= reverse2 public static void reverse2(int[] b) { for (int left=0, right=b.length-1; left < right; left++, right--) { //... Exchange the left and right elements int temp = b[left]; b[left] = b[right]; b[right] = temp; } } ```