Первое:Какой вид пузыря?
for(int i=0;i<n-1;i++)
for(int j=n-1; j>i;j--)
if(a[j] < a[j-1])
swap(a[j], a[j-1]);
или второй:
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if(a[j] < a[i])
swap(a[j],a[i]);
или третья версия:
int temp, i, j = 0;
boolean swaped = true;
while (swaped) {
swaped = false;
j++;
for(i = 0; i < arr.length - j; i++){
if(arr[i] > arr[i+1]){
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
swaped = true;
}
}
}
Кто-то говорят, что первым и кто-то сказал второй. Итак, какой из них прав? Кто-то говорит, что второй - это взаимозаменяемость. Многие книги говорят, что «пузырь» - это третья версия, но многие люди называли первую версию пузырьковой сортировкой. Есть комментарии?
Третья версия - это странно. Разве это даже сортировка? –
@MichaelDorgan: Это обычная оптимизация для сортировки пузырьков –
Угадайте, я давно не использовал ее :) Интересно, почему? –