Я знаю алгоритм сортировки пузырьков, но мой вопрос в том, что это эффективный код для этой сортировки. У меня есть две модели этого алгоритма, я думаю, что оба делают правильный выбор пузырьков, но что самое лучшее из того, что касается пространства памяти и времени? !!Bubble sort of double array
Модель A:
public static void bubbleSort(double[] array){
boolean sorted;
for(int i = 0; i < array.length - 1; i++){
sorted = true;
for(int j = array.length - 1; j > i; j--){
//swap
if(array[j] < array[j - 1]){
double temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
sorted = false;
}
}
if(sorted)
break;
}
}
Модель B:
static void bubbleSort(double[] list) {
boolean changed = true;
do {
changed = false;
for (int j = 0; j < list.length - 1; j++)
if (list[j] > list[j+1]) {
//swap list[j] wiht list[j+1]
double temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
changed = true;
}
} while (changed);
}
Почему вы думаете, что они сильно отличаются друг от друга? – Thomas
Это в буквальном смысле тот же алгоритм, вы просто добавили do-while в модель B. –
Так что нет предпочтительного! – Dudda