python - 从行的最后一个索引开始,按行中列值的公共顺序对矩阵行进行排序
问题描述
假设原始矩阵是
[
[20, 15, 30, 40, 20]
[20, 40, 30, 40, 20]
[20, 15, 20, 15, 20]
[30, 20, 20, 40, 20]
[20, 15, 30, 40, 10]
[20, 15, 30, 30, 10]
[20, 15, 30, 30, 10]
[20, 15, 30, 40, 20]
]
排序后,矩阵如下所示:
[
[20, 15, 30, 30, 10]
[20, 15, 30, 30, 10]
[20, 15, 30, 40, 10]
[20, 15, 20, 15, 20]
[30, 20, 20, 40, 20]
[20, 15, 30, 40, 20]
[20, 15, 30, 40, 20]
[20, 40, 30, 40, 20]
]
即,保留一行中的顺序。如果行中的最后一列值相同,则组合在一起;如果行中倒数第二列的值相同,则将具有相同倒数第二列和最后一列值的行组合在一起...继续直到完成排序。
我的算法是:
- 根据最后一列对行进行排序
- 将具有相同最后一列值的行分组
- 根据倒数第二列对具有相同最后一列值的行进行排序
- 将具有相同倒数第二和最后一列值的行划分为子组
- 重复直到完成排序
我的问题是:
使用一个线程可以改进我的算法吗?还是只能用多线程优化?
解决方案
推荐阅读
- go - “go.etcd.io/etcd/clientv3/balancer/picker” - 未定义:balancer.PickOptions
- typescript - 在 TypeScript 中,如何定义提供从成员对象返回的值的方法类型?
- html - 使用动态表的静态/粘性标题
- kotlin - 是否需要在 columnInfo 注释中定义名称?
- azure-pipelines - 在每个管道运行中在 Blob 存储中创建和保存新文件
- mysql - Vert.x (Kotlin) 中使用的 MySQLPool
- scala - 如何获得具有下限的 Class[_ <: A]]
- c# - Open Generic的IEnumerable的依赖注入
- javascript - react setState似乎被redux调度取消了?
- javascript - 在 javascript 中,如何将变量用作对象属性名称的一部分