00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
swapRightDiagonal(m):
// no throw for n = 0
if m == null ||
(m.length() > 0 && m.length() != m[0].length()):
throw
n = m.length()
ni = n -1
for layer = 0, layer < n/2, layer++:
swap(m, layer, layer, ni -layer, ni -layer)
for i = layer +1, i < ni -layer, i++:
swap(m, layer, i, ni -i, ni -layer)
swap(m, i, layer, ni -layer, ni -i)
swapLeftDiagonal(m):
// no throw for n = 0
if m == null ||
(m.length() > 0 && m.length() != m[0].length()):
throw
n = m.length()
ni = n -1
for layer = 0, layer < n/2, layer++:
swap(m, ni -layer, layer, layer, ni -layer)
for i = layer +1, i < ni -layer, i++:
swap(m, i, layer, layer, i)
swap(m, ni -layer, i, i, ni -layer)
swap(m, ai, aj, bi, bj):
temp = m[ai][aj]
m[ai][aj] = m[bi][bj]
m[bi][bj] = temp
No comments:
Post a Comment