黑马程序员技术交流社区
标题:
关于数组内的数值交换
[打印本页]
作者:
xiaoziyk
时间:
2015-10-31 23:10
标题:
关于数组内的数值交换
关于一维数组的数值交换,如arr[0]和arr[4]交换,arr[1]和arr[3]交换. 能不能帮忙写个代码讲解一下,不是很明白
作者:
迷茫不堪的年纪
时间:
2015-10-31 23:57
应该是换角标下的值吧? 可以用if 尝试调换
作者:
黑夜中那颗星
时间:
2015-11-1 00:29
数值交换一般定义第三方变量来完成互换
int a = 4;
int b = 8;
互换代码如下
int temp = a;//先把a的值存入第三方变量
a = b;//然后把b的值给a,虽然值覆盖了原来的值,但是已经提前把a的值存入了第三方变量
b = temp;//在把以前a的值给b
这样就互换了
你说的数组和这个是样的,把代码套进去就行了嘛
作者:
冯景超
时间:
2015-11-1 13:24
以arr[1],arr[3]调换为例
1.定义一个静态方法
class Array
{
static void swap(int[] arr,int a,int b)//a,b就是要换值的元素角标
{
int temp;
temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
然后用类名调用该方法即可
class Demo
{
public static void main(String[] args)
{
int[] arr={1,2,3,4,5}//定义一个数组
Array.swap(arr,1,3);//类名调用函数
System.out.println(arr[1]); //输出验证
System.out.println(arr[3]);
}
}
作者:
momoxixi
时间:
2015-11-1 13:43
我个人喜欢用这个方法,可以不用开辟新空间而完成交换
arr[0] = arr[4]^arr[0];
arr[4] = arr[4]^arr[0]; //将arr[0]代入。arr[4] = arr[4]^arr[4]^arr[0] = arr[0]
arr[0] = arr[4]^arr[0]; //将arr[4] = arr[0],arr[0] = arr[4]^arr[0]代入得 arr[0] = arr[0]^arr[4]^arr[0]=arr[4]
交换完成
作者:
zlg
时间:
2015-11-1 14:08
temp=arr[0]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2