2010-12-28 12 views
0

まず、コンストラクタにリストを渡した後、すべての順列を見つけて、それらのそれぞれで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; 
    } 
} 
+0

ここではすべての順列を印刷しませんでしたが、平均アクセス時間が最も短い順列を印刷するのではなく、それは常に間違っている最後の順列を印刷し、それを修正するための助けが必要です。 – user472221

+0

あなたの質問は曖昧です。あなたが提示したのは、本当の疑問のないバグの症状です。 – jzd

+0

私はより良いトピックを見つけることができませんでした!申し訳ありません – user472221

答えて

0

べきかと言えばminAverageAccessTime<averageAccessTimeではなく、より大きいあなたの他にありません。

+0

申し訳ありません私はあなたが意味するものを得ることができませんでしたか?もっと説明しますか? – user472221

+0

残念ながら何が残りの部分を隠しているのですか?それを私が直した。 – jzd

関連する問題