数组的两两交换,两种交换:
- 相邻交换,
- 四个一组,隔着交换,如1和3,2和4交换
package second;
import java.util.Scanner;
public class ExchangeArray
{
public static void main(String[] args)
{
ExchangeArray change = new ExchangeArray();
System.out.println("你数组的大小");
int size = new Scanner(System.in).nextInt();
Integer a[] = new Integer[size];
Integer b[] = new Integer[size];
for (int i = 0; i < size; i++)
{
a[i] = i + 1;
b[i] = i + 1;
}
System.out.println("相邻交换");
change.exchange(a);
for (int i = 0; i < a.length; i++)
{
System.out.print(a[i] + " ");
}
System.out.println("\n四个一组隔着交换");
change.bigexchange(b);
for (int i = 0; i < b.length; i++)
{
System.out.print(b[i] + " ");
}
}
public <T> T[] exchange(T[] a)
{
T temp;
for (int i = 0; i + 1 < a.length; i = i + 2)
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
return a;
}
public <T> T[] bigexchange(T[] a)
{
T temp;
int flag=0;
for(int i=0;i+2<a.length;i++)
{
temp=a[i];
a[i]=a[i+2];
a[i+2]=temp;
flag++;
if(flag%2==0&&flag!=0)
{
i+=2;
}
}
return a;
}
}