讓人感動的代碼

在算法導論的第一節課上,老師給我們展示了下面兩段代碼。突然想到很久之前看的一篇文章裏提出的一個問題,是否有這樣一段代碼,能讓你感動。看到這段代碼後,起碼這三年裏,我找到了能讓我感動的代碼。

代碼是兩個函數的對比

//參數 二維數組,數組的行數m,數組的列數n
void method1(int[][] array,int m,int n){
    for(int row=0;row<m;row++){
        for(int column=0;column<n;column++){
            System.out.println(array[row][column]);
        }
    }
}

void method2(int[][] array,int m,int n){
    for(int column=0;column<n;column++){
        for(int row=0;row<m;row++){
            System.out.println(array[row][column]);
        }
    }
}

接着老師問了一個問題:這兩個方法直接有什麼區別?

同樣的方法,僅僅是改動了兩個參數,在數據量大的時候,執行效率相差百倍以上。簡簡單單的兩個遍歷二維數組的函數,相差百倍的運算速度裏面透露的,卻是cpu緩存的設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章