快速钥匙生成用于分类Python/C 的矩阵

Fast key generation for sorting matrices in python/C++

本文关键字:Python 分类 钥匙 用于      更新时间:2023-10-16

在C 和Python中工作,我正在寻找一个矩阵函数f(即,将矩阵作为输入并返回标量值(,我可以用来生成一个键来生成一个键排序方形矩阵/2-D阵列具有非负整数条目。

示例:我有三个(或更多(矩阵ABC ...带有f(A)=af(b)=bf(C)=c ...如果a<b<c,该程序将返回列表(A,B,C)。如果b<a<c程序返回列表(B,A,C)

为了确保此排序过程可靠,我需要在A==B时需要f(A)=f(B)。我正在寻找能够满足此条件的功能,并为最多100行和列的矩阵快速计算。

,以正确地超载&lt;操作员,您的关系必须是一个严格的弱序订购,这意味着,要使它是一个严格的秩序,它必须是不对称和及时的,并且要成为一个薄弱的顺序,其无与伦比的关系必须是传递性的。换句话说,这意味着,如果您要比较三个矩阵A,B和C,则您的"&lt;"不能既有

要满足最后的要求,只有当矩阵a与矩阵B相同时,A和B的比较才必须返回"等于",我们知道,只有A的每个元素等于每个元素B.考虑到这一点,我们必须使用矩阵中的每个元素来确保 a和b仅在矩阵A与矩阵B相同时返回"等于"。

考虑以下功能:

  1. 如果矩阵A的行少于矩阵B(返回A小于B(

  2. 如果矩阵b的行比矩阵A较小(返回B小于A(

  3. 如果它们的行数相同,请继续

  4. 如果矩阵A的COLS少于矩阵B(返回A小于B(

  5. 如果矩阵B的COLS少于矩阵A(返回B小于A(

  6. 如果它们具有相同数量的Col,请继续

  7. 遍历

    中的每个元素

    i。比较每个位置的整数值和整数值 在同一位置的B

    ii。如果元素在A&lt;B处的元素(返回A小于B(

    iii。如果元素在B&lt;A(返回B小于A(

  8. 的元素
  9. 如果所有条目均等(返回a = b(

这意味着在最坏的情况下,该函数必须检查矩阵中的每个元素,但为了进行&lt;操作员要正确地超载,没有其他选择

在每种其他情况下,一旦元素存在差异,该函数将在大多数时间

都相当快地返回。