获取特定列表的问题

时间:2010-12-28 02:54:16

标签: java binary-search

我写了一个类,首先你将列表传递给它的构造函数,然后它会找到它的所有排列,然后我用它们各自做一个BST,我会找到它们的平均访问时间。所有这些工作都没问题!但是我想保持平均访问时间最少的排列,我将得到最少的平均访问时间,但它不会给我那个最不平均访问时间的具体排列。

例如,我有这些排列的平均访问时间:

[digit :3  probability: 0.2 level:1, digit :1  probability: 0.3 level:2, digit :2  probability: 0.1 level:3, digit :6  probability: 0.1 level:2, digit :5  probability: 0.1 level:3]
1.6
[digit :3  probability: 0.2 level:1, digit :1  probability: 0.3 level:2, digit :2  probability: 0.1 level:3, digit :5  probability: 0.1 level:2, digit :6  probability: 0.1 level:3]
1.6

[digit :1  probability: 0.3 level:1, digit :2  probability: 0.1 level:2, digit :3  probability: 0.2 level:3, digit :5  probability: 0.1 level:4, digit :6  probability: 0.1 level:5]
2.0

我希望获得其中一个排列,但它会打印最后一个排列!

CODE:

    public void getAverageAccessTime(ArrayList<Element> result) {
    averageAccessTime = 0.0;
    averageAccessTime += result.get(0).getProbability();
    result.get(0).setLevel(1);
    root = new DNode(result.get(0), null, null);
    for (int i = 1; i < result.size(); i++) {
        insert(result.get(i));
    }
    if(minAverageAccessTime==0){
        minAverageAccessTime = averageAccessTime;
        listWithMinimumAverageAccessTime = result;

    }
    else if(minAverageAccessTime>averageAccessTime)
    {
        minAverageAccessTime =averageAccessTime;
        listWithMinimumAverageAccessTime = result;
    }
}

1 个答案:

答案 0 :(得分:0)

如果说minAverageAccessTime<averageAccessTime而不是大于。

,那么你的其他人不应该说