Мне нужно реализовать двунаправленную сортировку пузырьков в моем коде.Bidirectionnal Bubble Сортировать по Java?
Иными словами, in
будет идти слева направо, перенося наибольшее значение.
Но когда оно достигает out
, оно должно быть обратным и идти справа налево, перенося наименьшее значение.
Я рекомендую ввести еще один индекс out
, кроме того, текущий.
Это то, что у меня есть до сих пор - всего 2 петли. Я предполагаю, что мне нужно как-то их объединить?
public void bubbleSort() {
int out, in; // nElems in my case is 4, because I have 4 elements in my array
for(out=nElems-1; out>1; out--) // outer loop backward
for(in=out; in>1; in--) // inner loop backward
if(a[in] < a[in-1])
swap(in, in-1);
for(out=0; out<nElems; out++) // outer loop forward
for(in=0; in<out; in++) // inner loop forward
if(a[in] > a[in+1])
swap(in, in+1);
это домашнее задание? только спрашиваю, потому что я редко нахожу Bubble sort на практике. –
Да, это SB. Bubble Sort sucks - настоящая история, но я должен выполнить этот проект. –
Я угадываю, что я не получу много помощи, если это домашнее задание? Даже не подсказка? –