【发布时间】:2010-12-28 20:16:09
【问题描述】:
我写了一个类,首先你将一个列表传递给它的构造函数,然后它会找到它的所有排列,然后我用它们中的每一个做一个 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
我想获得第一个排列,但它会打印最后一个排列!
代码:
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;
}
}
【问题讨论】:
-
我没有在这里打印它的所有排列。但我想说的是,而不是用最少的平均访问时间打印排列!它总是会打印最后一个不正确的排列,我需要帮助来纠正它。
-
您的问题含糊不清。你提出的只是一个没有真正问题的错误的症状。
-
我找不到更好的话题了!对不起
标签: java binary-search