03——一维数组中元素的逆置

一维数组中元素的逆置

  数组内元素的逆置,即将一个数组内的元素成对的调换,和将两个整数类型的值相调换的相同之处在于,都需要一个第三方变量来暂时储存其中一个元素。
  例如:数组intArray[]=3,1,5,7,8
  数组:3,1,5,7,8
  下标:0,1,2,3,4
  数组的长度:5
  首先,我们需要定义一个int型的名为len的变量来存储这个数组的长度,以便于在后面用到数组的长度的量时直接提用。
  然后创建一个for循环,在for循环内遍历这个数组的前半段,再将前半段某个元素与后半段相对应的那个元素的值进行调换即可。
  在for循环内创建int类型的变量i,用于控制for循环的次数,它的起始值为0(因为这个数组的下标开始值是0),它的终止值应该小于该数组长度的一半,(当数组的长度是偶数的时候,长度的一半减去一刚好是需要循环的最后一个元素的下标;当数组的长度为奇数的时候,它长度的一半减一也是需要循环的最后一个元素的下标),用于遍历该数组的前半段元素。
  在for循环中,我们需定义一个int类型的变量temp,将它作为第三方变量来暂时存储intArray[i]的值,然后将与它交换的元素的值赋值给intArray[i],然后将temp中暂时储存的值赋值给与intArray[i]交换的那个元素,这样就完成了两个元素的交换,然后进入到下一次循环,当数组的前半段循环完毕后,数组内所有元素的逆置也就完成了。
  还有,如果我要将上面的数组实行元素的逆置的话,我需要将3与8交换(即将下标为0的元素和下标为4的元素交换),然后将1与7交换(即将下标为1的数和下标为3的元素交换)即可。
  那么,如何确定那个与前半段的某个元素交换的元素呢,我们可以通过下标值来判断:
  比如在上面的数组中,我们要将3和8交换,我们找出它们下标值的规律,假设3的下标值是i=0,那么,8的下标可以用i表示为intArray.longth-i-1,找到与前半段某个元素相对应的元素的下标的规律后,我们就可以在循环体中找到与前半段某个变量相匹配的那个变量了,这样就可以将它们两个的值互换了。
  当这个for循环完成之后,这个数组内所有的元素的位置也就逆置完成了,最后,我们只需用for循环打印出完成逆置后的数组即可。
  代码如下:

package cn.com;

import java.util.Arrays;

/**
 * 逆置数组
 * 
 * 3 1 5 7 8 0 1 2 3 4
 * 
 * 3---8互换 1---7互换
 *
 * i=0时 8的下标:4=5-1 4=len-1-i
 *
 * i=1时 7的下标:3=len-1-i
 */
public class Demo {

	public static void main(String[] args) {
		// 定义一个int类型的数组
		int[] intArray = { 3, 1, 5, 7, 8 };
		// 定义一个int类型的变量,为这个数组的长度
		int len = intArray.length;
		// for循环,i<数组长度的一半,这样就可以遍历数组的前半段
		for (int i = 0; i < len / 2; i++) {
			// 定义一个int类型的变量用于暂时存储前半段某一个元素
			int temp = intArray[i];
			// 通过上面的分析,将后半段相应元素的值赋值给这个元素
			intArray[i] = intArray[len - 1 - i];
			// 将暂时储存在temp中的元素的值赋值给后半段相应元素
			intArray[len - 1 - i] = temp;
		}
		// 输出完成置换后的数组
		System.out.println(Arrays.toString(intArray));
	}
}
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值