проблема в получении конкретного списка - PullRequest
0 голосов
/ 28 декабря 2010

Я написал класс, который сначала передает список его конструктору, а затем он находит все его перестановки, а затем я делаю 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;
    }
}

1 Ответ

0 голосов
/ 28 декабря 2010

Если вы не говорите, если minAverageAccessTime<averageAccessTime, а не больше, чем

...