数组元素颠倒顺序

/**
 * 
 * @author LLJ
 *	数组元素颠倒
 */
public class Reverse {

	public static void main(String[] args) {
		int[] a = {3,1,2,5,7};
		
		System.out.println("--------原有数组元素打印---------------");
		printArray(a);
		System.out.println("--------数组元素互换,颠倒执行开始--------");
		reverse(a);
		System.out.println("--------数组元素互换,颠倒执行结束--------");
		System.out.println("--------互换成功后的数组元素------------");
		printArray(a);
	}
	
	/**
	 * 
	 * a.length/2:分析题意得知。
	 * 元素颠倒,也就是最少时只需要移动(或是颠倒)元素长度的一半次数的数组元素,
	 * 偶数个元素即是移动(颠倒)偶数的二分之一次,
	 * 奇数个元素即是奇数的二分之一(取整数位)次。
	 */
	public static void reverse(int[] a){
		//i变化范围为数组长度的一半
		for(int i = 0; i<a.length/2; i++){//a.length/2:偶数个元素即是颠倒偶数的二分之一次,奇数个元素即是奇数的二分之一次
			//交换a[i]和a[a.length - i - 1]
			int t = a[i];//把数组的第一个值a[i],放到t
			a[i] = a[a.length - 1 - i];//把数组最后一个值放到a[i]
			a[a.length - 1 - i] = t;//把t的值(也就是初始a[i]的值)放到数组最后一个元素上
		}
	}
	
	/**
	 * 
	 * @param a
	 * 打印数组
	 */
	public static void printArray(int[] a){
		for(int i = 0; i<a.length; i++){
			System.out.print(a[i] + "\t");//"\t"是java中的分隔符
		}
		System.out.println();//打印完的换行
	}
}


猜你喜欢

转载自blog.csdn.net/weixin_42495773/article/details/80782642