Подсчитайте количество сравнений алгоритма сортировки и добавьте его в список массивов в Java - PullRequest
0 голосов
/ 03 февраля 2012

Привет У меня есть общий алгоритм сортировки пузырьков, который я использую, и я хочу отслеживать количество сравнений, которые происходят до сортировки массива.Количество сравнений должно храниться в списке массивов.Я не слишком уверен, как это сделать, поэтому мне было интересно, если кто-нибудь может помочь.Спасибо

protected static ArrayList<Integer> noOfComparisons = new ArrayList<Integer>();

public static <E extends Comparable<? super E>> void bubbleSort(E[] comparable) {
boolean changed = false;
do {
    changed = false;
    for (int a = 0; a < comparable.length - 1; a++) {
        if (comparable[a].compareTo(comparable[a + 1]) > 0) {
            E tmp = comparable[a];
            comparable[a] = comparable[a + 1];
            comparable[a + 1] = tmp;
            changed = true;
        }
    }
} while (changed);
}

1 Ответ

2 голосов
/ 03 февраля 2012

Вам нужно будет отслеживать количество сравнений каждый раз, когда вы сортируете массив. Для этого создайте int, инициализированный в нуле в начале метода bubbleSort, а затем увеличивайте это число при каждом сравнении. В конце вашего метода bubbleSort добавьте это int в список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...