You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不按行/列顺序对二维(2D)数组进行整体排序的相关问题

二维数组整体排序实现方案

核心逻辑分为三步即可实现需求:

  • 第一步:将二维数组的所有元素展开为一维数组
  • 第二步:对一维数组做全量升序/降序排序
  • 第三步:将排序后的一维数组按照原二维数组的行列维度拆分,重新组装成二维数组

注:你给出的预期输出示例存在笔误,输入数组中没有-1和2两个元素,正确排序后回填的结果应为:

-4  -2  0  1
3   3   4  5
6   7   8  9

Python 实现示例

def sort_2d_array(arr):
    # 获取原数组的行列数
    rows = len(arr)
    if rows == 0:
        return []
    cols = len(arr[0])
    # 摊平数组后排序
    sorted_flat = sorted(num for row in arr for num in row)
    # 按原维度重组二维数组
    return [sorted_flat[i*cols : (i+1)*cols] for i in range(rows)]

# 测试用例
input_arr = [
    [8,7,9,3],
    [-2,0,4,5],
    [1,3,6,-4]
]
print(sort_2d_array(input_arr))

JavaScript 实现示例

function sort2dArray(arr) {
    const rows = arr.length
    if (rows === 0) return []
    const cols = arr[0].length
    // 摊平数组后排序
    const sortedFlat = arr.flat().sort((a,b) => a - b)
    // 按原维度重组二维数组
    return Array.from({length: rows}, (_, i) => sortedFlat.slice(i*cols, (i+1)*cols))
}

// 测试用例
const inputArr = [
    [8,7,9,3],
    [-2,0,4,5],
    [1,3,6,-4]
]
console.log(sort2dArray(inputArr))

如果需要降序排序,只需要修改对应排序方法的比较规则即可。

内容的提问来源于stack exchange,提问作者Ayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:36:01