strukcje
Dana jest tablica A=[3,0,1,7,5]. Sprawdź, ile prostych zmian potrzeba, by uporządkować ją algorytmem sortowania bąbelkowego:
a. rosnąco;
b. malejąco.
Zapisz algorytm sortowania bąbelkowego dla tej tablicy.

Pomoże ktoś ? Codeblock C++


Odpowiedź :

Odpowiedź:

#include <iostream>

void swap(int &a, int &b) {

   int tmp = b;

   b = a;

   a = tmp;

}

int main() {

   int A[] = {3, 0, 1, 7, 5};

   int length = sizeof(A) / sizeof(A[0]);

   int counter = 0;

   for (int i = 0; i < length; i++) {

       for (int j = 0; j < length - 1 - i; j++) {

           if (A[j] < A[j + 1]) {

               counter++;

               swap(A[j], A[j + 1]);

           }

       }

   }

   std::cout << counter << std::endl;

   for(const auto &t : A){

       std::cout << t << std::endl;

   }

   return 0;

}

Wyjaśnienie:

Zależnie czy chcesz, żeby było w kolejności od namniejszego do największego czy odwrotnie, to zmieniasz < na > w ifie lub odwrotnie