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