Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 122

Do stworzenia zbioru danych potrzebnego do uruchomienia algorytmu sortowania bąbelkowego tablicy, wymagane są przynajmniej następujące typy:

  1. Ajeden tablicowy, dwa liczbowe do nadzorowania pętli, jeden do zamiany miejscami elementówPoprawna
  2. Bdwa tablicowe, dwa do zamiany miejscami elementów
  3. Cjeden tablicowy, jeden liczbowy do nadzorowania pętli, dwa do zamiany miejscami elementów
  4. Ddwa tablicowe, jeden liczbowy do nadzorowania pętli

Wyjaśnienie

Sortowanie bąbelkowe to jeden z tych algorytmów, które wydają się proste, ale wymagają solidnego zrozumienia działania pętli i pracy z tablicami. W praktyce, aby prawidłowo zaimplementować bubble sort, zawsze korzysta się z jednej tablicy (w której przechowywane są elementy do posortowania), dwóch liczbowych zmiennych sterujących (dla dwóch zagnieżdżonych pętli for lub while, bo każda z nich odpowiada za przechodzenie przez elementy), a także jednej dodatkowej zmiennej tymczasowej do zamiany miejscami dwóch elementów. To właśnie te cztery składniki są absolutnym minimum, żeby kod był czytelny i zgodny z zasadami dobrej praktyki. Z mojego doświadczenia, rezygnacja z jednej z nich prowadzi do niepotrzebnego kombinowania, a czasem nawet do dziwnych błędów. Warto wiedzieć, że takie podejście dobrze wpisuje się w wymagania większości języków programowania – czy to C, Java, czy Python – i sprawdza się zarówno przy nauce, jak i w praktycznych zadaniach rekrutacyjnych. Pozostawienie logiki zamiany elementów w osobnej zmiennej tymczasowej to nie tylko kwestia czytelności; to też sposób na unikanie utraty danych podczas zamiany. Co ciekawe, niektórzy próbują czasami zamieniać bez zmiennej tymczasowej, używając operacji XOR, ale w praktyce to przerost formy nad treścią i raczej niezalecane w standardzie branżowym. Dobrze jest wiedzieć, że to podejście, które tu wybrałeś, stanowi niejako wzorzec dla wszystkich początkujących programistów i jest akceptowane na egzaminach czy rozmowach technicznych.