算法第四版 1.2.8

设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]);
        
                
    }

}

 

posted @ 2020-02-07 22:14  清明道人  阅读(143)  评论(0编辑  收藏  举报