【发布时间】:2019-11-27 20:43:48
【问题描述】:
有没有一种有条不紊的方法来对二维方阵的值进行排序,最大值在中间,最小值在边缘?
例子:
1 5 3
8 9 6
4 7 2
或:
4 8 1
6 9 5
2 7 3
我不确定哪一个是最好的,或者对于 nxn 数组(其中 n 是奇数)如何做到这一点。
【问题讨论】:
-
为什么在您的示例中将 5、6、7、8 放置在它们的位置,以及为什么将 1、2、3、4 放置在显示的位置,为什么不放在顶部的其他位置,例如 4对,左下角的 1 等?您如何使用上述方案表示具有 1 - 25 个数字的 5 x 5 矩阵?如果你能回答这些,那就很容易实现了。
-
是的,但您不会将排序作为二维数组进行。相反,您对项目进行线性排序,然后按优先级将它们放置在所需的位置。
-
如果元素 1、2、3 和 4 可以在示例中的任何角落,那么它更多的是分区而不是排序问题。
-
@Prune:原则上,有很多有效展示位置这一事实可能意味着它可以更有效地完成,而无需对值进行完整排序。
标签: arrays algorithm sorting matrix 2d