質問者殿は i と j が同時に増えると考えていると見受けられます。
例題の場合 iが1のときに jを1から5まで変化させてmatorixの判断
その後、iが2となり再び jを1から5まで変化させます。
この動作を iが5になるまで実行させるを意図していると考えます。
トレースで言いますと
i←1
j←1
Matrix[1][1]≠0Ture
sparse[1]{1}
sparse[2]{1}
sparse[3]{3}
i←1
j←2
Matrix[1][2]≠0False
i←1
j←3
Matrix[1][3]≠0False
i←1
j←4
Matrix[1][4]≠0False
i←1
j←5
Matrix[1][5]≠0False
i←2
j←1
Matrix[2][1]≠0False
i←2
j←2
Matrix[2][2]≠0True
sparse[1]{1,2}
sparse[2]{1,2}
sparse[3]{3,2}
i←2
j←3
Matrix[2][3]≠0True
sparse[1]{1,2,2}
sparse[2]{1,2,3}
sparse[3]{3,2,2}
i←2
j←4
Matrix[2][4]≠0False
i←2
j←5
Matrix[2][5]≠0False
i←3
j←1
Matrix[3][1]≠0False
i←3
j←2
Matrix[3][2]≠0False
i←3
j←3
Matrix[3][3]≠0False
i←3
j←4
Matrix[3][4]≠0True
sparse[1]{1,2,2,3}
sparse[2]{1,2,3,4}
sparse[3]{3,2,2,1}
i←3
j←5
Matrix[3][5]≠0True
sparse[1]{1,2,2,3,3}
sparse[2]{1,2,3,4,5}
sparse[3]{3,2,2,1,3}
i←4
j←0
Matrix[4][0]≠0False
i←4
j←1
Matrix[4][1]≠0False
i←4
j←2
Matrix[4][2]≠0False
i←4
j←3
Matrix[4][3]≠0False
i←4
j←4
Matrix[4][4]≠0True
sparse[1]{1,2,2,3,3,4}
sparse[2]{1,2,3,4,5,4}
sparse[3]{3,2,2,1,3,2}
i←4
j←5
Matrix[4][5]≠0False
i←5
j←1
Matrix[5][1]≠0False
i←5
j←2
Matrix[5][2]≠0False
i←5
j←3
Matrix[5][3]≠0False
i←5
j←4
Matrix[5][4]≠0False
i←5
j←5
Matrix[5][5]≠0True
sparse[1]{1,2,2,3,3,4,5}
sparse[2]{1,2,3,4,5,4,5}
sparse[3]{3,2,2,1,3,2,1}
を意図していると思います。