黑马程序员技术交流社区
标题:
位置置换的问题
[打印本页]
作者:
刘俊佳
时间:
2012-8-19 10:23
标题:
位置置换的问题
关于毕老师Java基础视频教程第04天-06-数组(排序-位置置换功能抽取)的视频里说到这样一段代码,在程序中是怎样体现完成位置置换的呢?:
public static void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
作者:
黑马-郑鹏
时间:
2012-8-19 11:07
假设你定义了一个数组
int[] arr = new int[]{12,23,13,25};
那么12对应的数组下标是0,22对应的数组下标是1,13对应的数组下标是2,25对应的数组下标是3
现在你想置换12和23的值,那么你调用swap函数就是
swap(arr,0,1);
也就是这时的a=0,b=1
那么swap中的代码就如下所示:
int temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
这样运行后arr[0]=23,arr[1]=12,这样就实现了代码的调换
作者:
王宝龙
时间:
2012-8-19 12:33
在java中单纯的方法是不能起到叫唤的作用的要把方法放在类里面
代码如下:
<p>class Change
{
public static void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
public class Demo_1
{
public static void main(String[] arge)
{
int i;
int [] a = {8,5,3,4,7,9,0,1,2,6};
for(i=0;i<a.length;i++)
{
System.out.printf("%3d",a[i]);//先输出一次数组
}
System.out.println();
Change.swap(a,0,1);//进行交换
for(i=0;i<a.length;i++)
{
System.out.printf("%3d",a[i]);//交换后输出
}
}
}
你可以看到第0个元素与第1个元素位置进行了交换!!</p>
复制代码
作者:
高薇
时间:
2012-8-19 13:56
简单的说,就是先准备一个容器,将第一数先存放在容器中,然后第二个数赋值给第一个变量,再把容器中的值赋值给第二个变量。
结合现实情况,想象一下,然后再理解程序,会比较容易一些。
希望能够帮到你。
作者:
贾林栋
时间:
2012-8-19 20:40
本帖最后由 贾林栋 于 2012-8-19 20:42 编辑
画了个图,希望楼主能明白
初始值 arr[a]=1 arr
=2
无标题.png
(16.04 KB, 下载次数: 69)
下载附件
2012-8-19 20:40 上传
作者:
刘俊佳
时间:
2012-8-29 08:39
谢谢楼上各位的解答 问题已解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2