JAVA排序算法-反转排序

顾名思义,反转排序就是以相反的顺序把原有数组的内容重新排 序。反转排序算法在程序开发中也经常用到。

1.基本思想

反转排序的基本思想比较简单,也很好理解,其实现思路就是把数 组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替 换,依此类推,直到把所有数组元素反转替换。

2.算法示例

反转排序是对数组两边的元素进行替换,所以只需要循环数组长度 的半数次,如数组长度为7,那么for循环只需要循环3次。 例如:

反转排序

3.算法实现

下面来介绍一下反转排序的具体用法。 【例】在项目中创建ReverseSort类,这个类的代码将作为反转 排序的一个演示。

/**
 * 反转排序算法实例
 * 
 * @author Li Zhong Wei
 */
public class ReverseSort {
	public static void main(String[] args) {
		// 创建一个数组
		int[] array = { 10, 20, 30, 40, 50, 60 };
		// 创建反转排序类的对象
		ReverseSort sorter = new ReverseSort();
		// 调用排序对象的方法将数组反转
		sorter.sort(array);
	}
	
	/**
	 *直接选择排序法
	 * 
	 * @param 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);// 输出排序后的数组值
	}
	
	/**
	 * 显示数组所有元素
	 * 
	 * @param array
	 *            要显示的数组
	 */
	public void showArray(int[] array) {
		for (int i : array) {// foreach格式遍历数组
			System.out.print("\t" + i);// 输出每个数组元素值
		}
		System.out.println();
	}
}
实例的运行结果
实例的运行结果

发表评论