不确定是否重复。给定具有前N
个整数和下一个N
个字符的数据结构。 A = i1 i2 i3 ... iN c1 c2 c3 ... cN
。我需要一个就地算法来将元素重新排列为A = i1 c1 i2 c2 ... iN cN
。
答案 0 :(得分:4)
您的问题相当于就地转换2xN矩阵。你可以在这里阅读理论:http://en.wikipedia.org/wiki/In-place_matrix_transposition
也许在2xN矩阵的特殊情况下,存在一个更简单的算法,但我无法想到。一般的想法是遵循排列的循环。
答案 1 :(得分:1)
我认为这是一个标准排序问题。
您只需要一个好的比较功能,然后使用qsort
。
您熟悉qsort
吗?
您是否创建了可以与我们分享的任何比较功能?
修改
正如评论家指出的那样,qsort
,std::sort
和其他类似的例程需要相同大小的对象。由于该问题需要一个不同大小的int和chars数组,并且在C / C ++中不是严格可行的,因此需要更多信息。
这个数组究竟是如何声明的?彗星有多大,有多大?字符的存在是否意味着N限制在255?
再一次,一些代码真的帮助。
答案 2 :(得分:1)