java实现数组的转置
2014-12-16 20:37
211 查看
分析:所谓转置就是把行变位列,把列变为行。
我们就可以用两个for循环遍历数组,然后交换array[i][j]与array[j][i]
注意,遍历数组时不可以全部遍历,这样会使行和列的数据交换两次,代码如下
public void transpose()
{
int a[][]={{1,2,3},{4,5,6},{7,8,9}};
System.out.println("转置前:");
for(int i=0; i<=2;i++)
{ for(int j=0;j<=2;j++ )
{ System.out.print(a[i][j]+"("+i+j+")\t");}
System.out.println();
}
//转置
for(int i=0; i<=2;i++)
{ for(int j=0;j<=i;j++ )//注意只能遍历一半,所以j<=i如果全部遍历,则数据交换了两次,相当于没有置换
{
int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
System.out.println("转置后");
for(int i=0; i<=2;i++)
{ for(int j=0;j<=2;j++ )
{ System.out.print(a[i][j]+"("+i+j+")\t");}
System.out.println();
}
}
我们就可以用两个for循环遍历数组,然后交换array[i][j]与array[j][i]
注意,遍历数组时不可以全部遍历,这样会使行和列的数据交换两次,代码如下
public void transpose()
{
int a[][]={{1,2,3},{4,5,6},{7,8,9}};
System.out.println("转置前:");
for(int i=0; i<=2;i++)
{ for(int j=0;j<=2;j++ )
{ System.out.print(a[i][j]+"("+i+j+")\t");}
System.out.println();
}
//转置
for(int i=0; i<=2;i++)
{ for(int j=0;j<=i;j++ )//注意只能遍历一半,所以j<=i如果全部遍历,则数据交换了两次,相当于没有置换
{
int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
System.out.println("转置后");
for(int i=0; i<=2;i++)
{ for(int j=0;j<=2;j++ )
{ System.out.print(a[i][j]+"("+i+j+")\t");}
System.out.println();
}
}
相关文章推荐
- 【数据结构与算法】数组应用2:矩阵转置(Java实现)
- 用java实现对数组的排列组合
- JAVA 用数组实现环型队列
- 实现AMF3与Java之间数组的传递(动态创建数组)...
- Java实现数组形式的多项式加法、减法、乘法、相除运算
- Java基于可扩充数组的向量实现(算法源码)
- 栈的数组实现_JAVA描述《数据结构与算法分析》
- java 基于数组实现的队列
- 数据结构复习:栈-Java数组实现
- Java实现数组排序总结篇(冒泡,选择,插入,希尔)
- 用JAVA实现堆栈(数组篇)
- Java写的DES源代码(数组实现)
- JAVA实现:给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里
- 数组排序的Java实现(Sorting of arrays implemented with Java)
- 数据结构复习:队列-Java数组实现
- 数组实现的约瑟夫问题(Java)
- Java 实践(Netbeans开发)——StringTokenizer实现数组分割
- JAVA里实现一个数组全排列的方法
- 第2章 Java编程基础——FAQ2.26 如何实现数组的复制?
- java 基于数组的栈的实现