我写了一个类,首先你将列表传递给它的构造函数,然后它会找到它的所有排列,然后我用它们各自做一个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;
}
}
答案 0 :(得分:0)
如果说minAverageAccessTime<averageAccessTime
而不是大于。