设a[],b[]都是长为数百万的数组 int[] t = a; a=b; b = t; 这段代码会将他们交换。它的效率不可能再高了, 因为它交换的是引用,而不是数百万个元素。
例子如下:
import edu.princeton.cs.algs4.StdOut; public class No_1_2_8 { public static void main(String[] args) { // TODO Auto-generated method stub int n =10; int[] a = new int[n]; for(int i=0;i<n;i++) a[i]=i; int[] b = new int [100]; for(int i=0;i<n;i++) b[i] = 100*i; StdOut.println("before:"); for(int i=0;i<n;i++) StdOut.print(a[i]); StdOut.println(); for(int i=0;i<n;i++) StdOut.print(b[i]); StdOut.println(); int[] t = a; a=b; b = t; StdOut.println("after:"); for(int i=0;i<n;i++) StdOut.print(a[i]); StdOut.println(); for(int i=0;i<n;i++) StdOut.print(b[i]); } }