gpt4 book ai didi

c++ - 请求想法 - 如何对具有多行和 3 列的二维数组进行排序,维护数据行

转载 作者:行者123 更新时间:2023-11-28 02:35:18 25 4
gpt4 key购买 nike

我在按字符位置将 MIT Meep 控制文件扫描成标记方面取得了进展。我现在有一个 nx3 整数数组,其中 3 列标识:

  • 人物位置
  • token 标识符
  • token 长度

除非它们是“找到”的顺序,而不是输入的顺序。我注意到字符位置可能会变得非常大,很容易达到千分之一(即数千行),而 token 标识符和 token 长度均低于一百。

我需要在不丢失其他两列的情况下按字符位置按升序对我的 nx3 数组进行排序。我研究过,答案似乎是编写一些实现冒泡排序或其他类似算法的代码。

是否有一个 C++ 函数可以在不丢失相关行条目的情况下对数组第一列中的条目进行排序?我的一些测试控制文件导致生成如下所示的数组:

380  2  1
401 2 1
441 2 1
442 2 1
178 4 13
178 18 7
0 26 5
59 26 5
218 26 5
330 26 5
382 26 5
23 32 5
80 32 5
142 32 5
238 32 5
256 32 5
353 32 5
74 38 5
232 38 5
347 38 5
403 44 4

最佳答案

一种可能是将您的行定义为结构 {a,b,c},比较“a”字段,然后使用编译器的结构赋值功能来交换结构(实际上是交换行)。

typedef struct ROW {
int a, b, c;
};
struct ROW A, B;
...
if (A.a > B.a) {
struct ROW tmp = A; A = B; B = tmp;
}

这有帮助吗?

关于c++ - 请求想法 - 如何对具有多行和 3 列的二维数组进行排序,维护数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com