我希望把一组数据排序,使其看起来像概率分布函数的直方图(目前假设为正态分布)。
我有一个条目列表:
private static final class SortableDatasetEntry{
Number value;
Comparable key;
public SortableDatasetEntry(Number value, Comparable key){
this.value = value;
this.key = key;
}
}
一个示例: 我有这些项目:
{1,2,3,4,5,6,7,8,9}
编辑:
我想要排序后的列表:{1,3,5,7,9,8,6,4,2}
(或类似的内容)。数字不一定那么整齐(即仅按奇偶性排序也行不通)。我有一个部分解决方案,涉及按常规顺序排序(从低到高),然后通过每次插入到中间将该列表复制到另一个列表中,因此最后插入的项目(到中间)是最大的。我仍然希望找到一种使用比较器完成这项任务的方法。删除线:这很棘手,因为它不是按
value
的绝对值进行排序,而是按其在集合中距离平均值(value
)的距离进行排序,然后以某种方式移动,使得那些最接近平均值的值居中。我知道compareTo函数必须是“可逆”的(我忘记了正确的术语)。额外加分:如何确定数据的正确分布(即如果它不是正态分布,就像假定的那样)。