まず、コンストラクタにリストを渡した後、すべての順列を見つけて、それらのそれぞれで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
私は拳の順列の1を取得したいが、それは最後の順列が印刷されます!
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;
}
}
ここではすべての順列を印刷しませんでしたが、平均アクセス時間が最も短い順列を印刷するのではなく、それは常に間違っている最後の順列を印刷し、それを修正するための助けが必要です。 – user472221
あなたの質問は曖昧です。あなたが提示したのは、本当の疑問のないバグの症状です。 – jzd
私はより良いトピックを見つけることができませんでした!申し訳ありません – user472221