📜  以 zag-zag 方式打印矩阵的Python程序(1)

📅  最后修改于: 2023-12-03 15:22:03.696000             🧑  作者: Mango

以zag-zag方式打印矩阵的Python程序

简介

本程序利用Python语言,实现了对矩阵的以“zag-zag”方式进行打印。通过该程序,我们可以直观地了解到该算法的运行原理。

算法实现

程序实现算法如下:

def print_matrix_matrix_zigzag(matrix):
    if not matrix:
        return
    row,col=len(matrix),len(matrix[0])
    a,b=0,0
    c,d=0,0
    end=row*col
    res=[]
    direction=-1
    while(a<row and b<col and c<row and d<col):
        res.append(matrix[a][b])
        if res==end:
            break
        a+=direction
        b-=direction
        if(a>row-1):
            a=row-1
            b+=2
        if(b>col-1):
            b=col-1
            a+=2
        if(a<0):
            a=0
        if(b<0):
            b=0

        res.append(matrix[c][d])
        if res==end:
            break
        c-=direction
        d+=direction
        if(c<0):
            c=0
            d+=2
        if(d>col-1):
            d=col-1
            c+=2
        if(c>row-1):
            c=row-1
        direction=-direction
    return res
程序说明
  • 参数说明

    • 参数 matrix 为二维数组
  • 运行说明

    • 运行该函数会返回所有矩阵元素以以“zag-zag”方式进行打印的列表 res。
示例

示例程序及输出如下:

matrix=[[1,2,3],[4,5,6],[7,8,9]]

print(print_matrix_matrix_zigzag(matrix))

运行结果为:

[1, 2, 4, 7, 5, 3, 6, 8, 9]
总结

通过本程序的实现和示例,我们可以清楚地了解到该算法的实现原理及运作方式。