作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在按字符位置将 MIT Meep 控制文件扫描成标记方面取得了进展。我现在有一个 nx3 整数数组,其中 3 列标识:
除非它们是“找到”的顺序,而不是输入的顺序。我注意到字符位置可能会变得非常大,很容易达到千分之一(即数千行),而 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/
我是一名优秀的程序员,十分优秀!