¿Cuál es el algoritmo más eficiente para descubrir el punto de silla de una matriz?

Deje [math] A_ {m \ times n} [/ math] la matriz. No estoy seguro de si este es el algoritmo más eficiente que existe, pero se ejecuta en [math] O (m \ times n) [/ math]. No podemos ir más abajo que esto porque hay elementos [matemáticos] m \ veces n [/ matemáticos] para visitar.

Presentamos el algoritmo en pseudocódigo a continuación.

DEF A [m, n]
DEF R [m] / * Matriz auxiliar que contiene el mínimo de cada fila. * /
DEF C [n] / * Matriz auxiliar que contiene el máximo de cada columna. * /

/ * Suponga que A [m, n] se ha rellenado. * /

PROCEDIMIENTO find_maxima_and_minima ()
EMPEZAR
/ * Inicializar R y C. * /
PARA i: = 1 A m
HACER
R [i]: = INFINITO
ENDDO

PARA i: = 1 a n
HACER
C [i] = -INFINIDAD
ENDDO

PARA i: = 1 A m
HACER
PARA j: = 1 a n
HACER
SI A [i, j] <R [i]
ENTONCES
R [i]: = A [i, j]
TERMINARA SI
SI A [i, j]> C [j]
ENTONCES
C [j]: = A [i, j]
TERMINARA SI
ENDDO
ENDDO
FIN

/ * El siguiente procedimiento utiliza R y C como entrada después de que se hayan rellenado por find_maxima_and_minima. * /

PROCEDIMIENTO find_saddle_points ()
EMPEZAR
PARA i: = 1 A m
HACER
PARA j: = 1 a n
HACER
SI R [i] = C [j]
ENTONCES
IMPRIMA “Punto de silla en i, j”.
TERMINARA SI
ENDDO
ENDDO
FIN

Gracias Usuario de Quora por pedirme que responda esto.