如何以 O(n) 时间高效插入二维排序矩阵

发布于 2025-01-09 09:33:28 字数 402 浏览 0 评论 0原文

我需要插入一个排序的二维 nxn 矩阵,插入应该在 O(n) 内实现。但条件是整个矩阵未排序,仅行和列排序。

示例:

9  10 12 14
11 12 14 15
21 22 28 Null
23 24 Null Null

将新元素插入到上述矩阵后,矩阵应按行和列排序。

我的方法

我正在考虑做一些事情,比如在矩阵 (3, 3) 的末尾插入新元素,从那里我将检查 (3, 3-1) 和 (3-1, 3) 如果 (3, 3) <,我会将 (3, 3) 与 max[(3, 3-1), (3-1, 3)] 交换max[(3, 3-1), (3-1, 3)],就像我将遍历整个矩阵,直到不需要交换为止。

如果有更好的方法,请告诉我。

I need to insert into a sorted 2-D n x n matrix, insertion should be achieved in O(n). but the condition is the whole matrix is not sorted, only rows and columns are sorted.

example:

9  10 12 14
11 12 14 15
21 22 28 Null
23 24 Null Null

after inserting a new element into the above matrix the matrix should be sorted in row and column wise.

My approach

I am thinking to do something like inserting the new element at the end of the matrix (3, 3), from there I will check (3, 3-1) and (3-1, 3) I will swap (3, 3) with max[(3, 3-1), (3-1, 3)] if (3, 3) < max[(3, 3-1), (3-1, 3)], like that I will traverse the whole matrix until there is no swapping is required.

Please let me know If there is a better way to do it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文