Java数组排序算法之反转排序

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();
    }
}

输出结果如下图所示:

猜你喜欢

转载自www.cnblogs.com/zwwhnly/p/10214115.html