【反转排序算法基本思想和案例】
反转排序:
反转排序的基本思想比较简单,也很好理解,其实现思路就是把数组最后一个元素和第一个元素替换,
倒数第二个元素与第二个元素替换,直到把所有数组元素反转替换。
案例:
初始数组排序【10 20 30 40 50 60】
第一趟排序后 60 【20 30 40 50】 10
第二趟排序后 60 50 【30 40】 20 10
第三趟排序后 60 50 40 30 20 10
算法主要代码:
// 定义方法实现反转排序
public static void reverseSort(int[] array) {
for (int i = 0, j = array.length - 1; i < j; i++, j--) {
array[i] = array[i] ^ array[j];
array[j] = array[j] ^ array[i];
array[i] = array[i] ^ array[j];
}
}
案例:
package com.lemon.demo;
/*
* 【反转排序算法基本思想和案例】
* 反转排序:
* 反转排序的基本思想比较简单,也很好理解,其实现思路就是把数组最后一个元素和第一个元素替换,
* 倒数第二个元素与第二个元素替换,直到把所有数组元素反转替换。
* 案例:
* 初始数组排序【10 20 30 40 50 60】
* 第一趟排序后 60 【20 30 40 50】 10
* 第二趟排序后 60 50 【30 40】 20 10
* 第三趟排序后 60 50 40 30 20 10
*/
public class ReverseSort {
public static void main(String[] args) {
int[] array = {10, 20, 30, 40, 50, 60};
reverseSort(array);
for (int i : array) {
System.out.print(i + " ");
}
}
// 定义方法实现反转排序
public static void reverseSort(int[] array) {
for (int i = 0, j = array.length - 1; i < j; i++, j--) {
array[i] = array[i] ^ array[j];
array[j] = array[j] ^ array[i];
array[i] = array[i] ^ array[j];
}
}
}