【问题标题】:problem in getting the specific list获取特定列表的问题
【发布时间】: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


【解决方案1】:

你的 else if 不应该说 if minAverageAccessTime&lt;averageAccessTime 而不是大于。

【讨论】:

  • 抱歉,我没听懂你的意思?你能解释更多吗?
猜你喜欢
  • 2011-04-16
  • 2013-05-15
  • 2012-05-31
  • 2019-09-20
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多