那麼下面的這個迴圈巢狀結構,它的時間複雜度是多少呢?
int i,j;
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++) /* 注意 j = i 而不是 0 */
{
/* 時間複雜度為O(1)的程式步驟序列 */
}
}
換句話說,巢狀迴圈的時間複雜度就是把內外層的次數相乘,雙層都跑 n 次就會變成平方階 O(n²),而當內層迴圈的起點隨著外層改變時,就會形成像等差級數般遞減的執行次數。
換句話說,線性串列就像是一群乖乖排隊的小朋友,每個人都有明確的前後順序,頭尾分明且彼此緊密相連。
今日的分享就到這囉,我們明天見,掰掰!