线性矩阵排序

时间:2014-02-13 04:44:06

标签: sorting

我有一个线性向量,其中包含任何给定块的单位坐标。坐标系如下所示。如果我想要从左下角开始并在右上角结束的最终列表,那么对列表进行排序的最佳方法是什么?不能改变数据结构。

任何解释方法都可以;伪,代码,粗略的想法等。

Diagram of data to be sorted

1 个答案:

答案 0 :(得分:1)

您的选择如下。

  1. 专栏

    按y递减排序,然后按x递增,使用字典排序。

  2. Row major

    按x增加排序,然后按y降序排序,使用字典排序。

  3. 为了说明,这是选项1的C风格示例比较操作。

    int compare(point a, point b)
    {
        if (a.y > b.y)
            return -1;
        else if (a.y < b.y)
            return 1;
        else if (a.x < b.x)
            return -1;
        else if (a.x > b.x)
            return 1;
        else
            return 0;
    }
    

    它基于块上的“#n”标签显示您想要选项1,列major。