删除矩阵中的相同行

时间:2013-03-23 23:31:41

标签: c math matrix

有人可以帮我解决这个问题吗?删除矩阵中相同行的最快方法是什么。例如。如果有3个相同的行,则将删除2个。

e.g。

  
    

0 1 0
    0 1 0
    0 1 0
    1 1 1

  

将是

  
    

0 1 0
    1 1 1

  

1 个答案:

答案 0 :(得分:0)

根据明确定义的排序(例如lexicographical ordering)对矩阵的行进行排序,然后比较相邻的行,以便在找到重复项时删除重复项。如果需要恢复原始行排序,可以跟踪通过排序引起的行排列,然后在消除重复后反转排列 行。

执行任何类型的成对比较而不进行排序将是O(N 2 )时间复杂度以定位重复,而排序首先将是O(N log N)时间复杂度,其中N是行数。

如果您对实施的细节有疑问,您需要告诉我们您到目前为止所尝试的内容,并说明它是如何达不到您的期望的。