为什么这个时间复杂度为O(n)?

J. *_*ing 5 complexity-theory

为什么以下函数的时间复杂度为O(n)?我无法理解我的生活.

void setUpperTriangular (
    int intMatrix[0,…,n-1][0,…,n-1]) {
        for (int i=1; i<n; i++) {
            for (int j=0; j<i; j++) {
                    intMatrix[i][j] = 0;
            } 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不断将最终时间复杂度定为O(n ^ 2),因为:

i: execute n times{//Time complexity=n*(n*1)
    j: execute n times{ //Time complexity=n*1
        intMatrix[i][j] = 0; //Time complexity=1
    }
}
Run Code Online (Sandbox Code Playgroud)

Nav*_*vin 8

代码遍历n^2/2数组中的(半个矩阵)位置,因此它的时间复杂度为O(n^2)