有没有一种方法可以衡量列表的排序方式?
我的意思是,这不是要知道列表是否已排序(布尔值),而是诸如“排序”之比,诸如统计中的相关系数之类的东西。
例如,
如果列表中的项目按升序排列,则其比率为1.0
如果列表降序排列,则其速率将为-1.0
如果list几乎升序排列,则其速率将是0.9或接近1的某个值。
如果列表根本不排序(随机),则其速率将接近0
我正在Scala中写一个小型图书馆进行练习。我认为排序速率会很有用,但我找不到有关此类信息的任何信息。也许我不知道这个概念的适当术语。
列表(或其他顺序结构)的排序方式的传统度量是反转次数。
反转数是a <b AND b <<a的st索引对(a,b)的对数。为了这些目的,<<表示您为特定排序选择的任何排序关系。
完全排序的列表没有反转,而完全颠倒的列表具有最大反转数。
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。