algorithm - 针对部分排序的数据分析排序算法

标签 algorithm sorting

我们知道,插入排序等几种排序方法在“大部分排序”的数组上效果很好,但在随机数据上效果不佳。

假设我们想要描述这种算法相对于输入数据“排序”的方式的性能改进/退化。生成“越来越排序”或“越来越随机”的元素数组的好方法是什么?我们如何衡量输入的“分类度”?

最佳答案

Number of Inversion是衡量数组排序程度的常用指标。

一对元素(pi,pj)在排列中 p 被称为排列中的反转如果 i<jpi >pj .例如,在排列中 (3,1,2,5,4)包含 3 个反转 (3,1) , (3,2)(5,4) .

排序数组得到 0 个反转,反向排序数组得到 n*(n-1)/2。

关于algorithm - 针对部分排序的数据分析排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113158/

相关文章:

没有shift键的WPF DataGrid MultiColumn排序

python - Map Reduce 常见查询的简单分数聚合

arrays - 找到最少的转换次数

objective-c - 使用 sortedArrayUsingDescriptors 和 Key Paths 进行排序

c - 将一维数组视为二维数组进行排序

java - 如何按java中结构的元素对结构列表进行排序

algorithm - 用于快速插入/删除排序的数据结构

java - 为什么我无法将 int 类型值添加到数组中

algorithm - 将图划分为连接的子图,这些子图的顶点集必须位于同一子图中

linux - 如何使用内置的 "sort"程序同时按两个字段(一个数字,一个字符串)排序?