Я далеко дуже від Basic
Але у плані алгоритму , я б працював з матрицею як з лінійною послідовністю - для цього буфер, щоб відсортувати , а далі записав би у матрицю відсортовані значення
Тут треба буде чотири цикли здається
Для проходів для запису зверху вниз , зліва направо , знизу вверх та справа наліво , але можливо є оптимальніші варіанти