1.基本思想
反转排序就是以相反的顺序把原有数组的内容重新排序。其实现思路就是把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,依此类推,直到把所有数组元素反转替换。
2.算法示例
反转排序是对数组两边的元素进行替换,所以只需要循环数组长度的半数次,如数组的长度为7,那么for循环只需要循环3次。
例如有一个数组为【10 20 30 40 50 60 70】
第1轮排序后:70 【20 30 40 50 60】10
第2轮排序后:70 60 【30 40 50】20 10
第3轮排序后:70 60 50 【40】30 20 10
3.算法实现
public class ReverseSort { public static void main(String[] args) { int array[] = {10, 20, 30, 40, 50, 60, 70}; ReverseSort sorter = new ReverseSort(); sorter.sort(array); } public void sort(int array[]) { System.out.println("数组原有内容:"); showArray(array); int temp; int len = array.length; for (int i = 0; i < len / 2; i++) { temp = array[i]; array[i] = array[len - 1 - i]; array[len - 1 - i] = temp; } System.out.println("数组反转后内容:"); showArray(array); } public void showArray(int array[]) { for (int i : array) { System.out.print("\t" + i); } System.out.println(); } }
输出结果如下图所示: