Sorting 线性矩阵排序
我有一个线性向量,其中包含任何给定块的单位坐标。坐标系如下所示。如果我想要从左下角开始到右上角结束的最终列表,那么对列表进行排序的最佳方法是什么?更改数据结构不是一个选项 任何解释都可以;伪代码、伪代码、粗略想法等Sorting 线性矩阵排序,sorting,Sorting,我有一个线性向量,其中包含任何给定块的单位坐标。坐标系如下所示。如果我想要从左下角开始到右上角结束的最终列表,那么对列表进行排序的最佳方法是什么?更改数据结构不是一个选项 任何解释都可以;伪代码、伪代码、粗略想法等 您的选择如下 主修专栏 使用字典排序,先按y降序,然后按x递增 排大调 使用字典排序,先按x递增,然后按y递减 为了说明这一点,下面是选项1的C风格示例比较操作 int compare(point a, point b) { if (a.y > b.y)
您的选择如下
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;
}
int比较(点a、点b)
{
如果(a.y>b.y)
返回-1;
否则如果(a.yb.x)为其他情况
返回1;
其他的
返回0;
}
它是基于您想要选项1 column major的块上的“#n”标签显示的。Perfect,我只做了一个小改动,将返回值-1替换为1,将返回值-1替换为-1,以实现基于列排序的排序。谢谢你的帮助,希尔兹先生!