使用多种方式实现数组的转置输出
先来看一遍题目
将一个给定的整型数组转置输出,例如源数组1 2 3 4 5 6转置之后的数组6 5 4 3 2 1
- 例子中是将1 2 3 4 5 6这个顺序数组进行转置输出6 5 4 3 2 1。
*所以我的第一个思路是通过比大小的方式实现数组的转置输出。
public class Transtion1{
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6};
int i,j,t;
for(i = 0 ; i < a.length-1;i++)
{
for(j=i+1;j<a.length;j++)
{
if(a[i]<a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
} //通过比较大小来调换顺序
}
}
for(i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}
}
如图所示,成功实现了将目标数组实现转置输出。
但是这种方法存在一个很大的不足,这种方法只能将顺序排列的数组实现目标的结果,不能对任意一个数组实现转置输出。
于是我构思了另一种方案。
import java.util.Scanner;
public class Transtion2{
public static void main(String[] args) {
int n,i,t;
System.out.println("输入数组长度");
Scanner in=new Scanner(System.in);
n=in.nextInt();
int []a=new int[n];
for(i=0;i<n;i++)
a[i]=in.nextInt();
for(i=n-1;i>=0;i--) //通过i值逐减实现转置输出
{
System.out.println(a[i]);
}
}
}
在这种方式中,我增加了自己输入任意数组的输入途径,用这个project可以实现对任意数组的转置输出,在这种方式中,我是通过对i值的逐减实现对数组的转置输出。