Sortowanie bąbelkowe lub sortowanie tonące to algorytm, który sortuje listy w kolejności, pracując na liście w celu zamiany i porównania elementów. Proces może mieć miejsce kilka razy, zanim lista będzie ułożona w odpowiedniej kolejności. Rodzaj ma swoją nazwę od małych elementów, które stale rosną na szczycie listy, jak bąbelki w napoju. Używa się go najczęściej do uporządkowania małych list.
Sortowanie bąbelkowe działa metodycznie, zaczynając od góry listy. Zacznie się od porównania pierwszego elementu z drugim i jeśli to konieczne, przełącz je. Następnie przejdzie dalej w dół listy i ponownie dokona wymiany, gdy znajdzie coś nie w porządku. Za każdym razem, gdy algorytm dokona zamiany, proces zostanie uruchomiony ponownie od góry lub od dołu listy.
Sortowanie bąbelkowe pochodzą z grupy porównawczej algorytmów sortowania. Ten typ algorytmu działa na dwa elementy na raz, określając para po parze, która z dwóch wartości jest wyższa lub czy są równe. Ten rodzaj sortowania może zapewnić ograniczony widok zestawu danych, ale może również ułatwić dostrajanie elementów tego zestawu. Inne typy algorytmów w grupie porównawczej obejmują sortowanie szybkie, scalające, koktajlowe i cykliczne.
Uważa się, że inny prosty algorytm sortowania porównawczego, zwany punktem wstawiania, działa wydajniej, a jednocześnie opiera się na podobnie prostej koncepcji. Zamiast zmieniać kolejność elementów od góry, są one wstawiane we właściwej kolejności względem siebie, aż cały zestaw zostanie prawidłowo uporządkowany. W wielu przypadkach ten rodzaj zaczął zastępować sortowanie bąbelkowe zarówno w programach edukacyjnych, jak iw powszechnym użyciu.
Chociaż algorytm sortowania bąbelkowego jest łatwy w użyciu i zrozumiały, wydaje się być praktyczny tylko w przypadku małych list. Wraz ze wzrostem liczby pozycji na liście spada szybkość i wydajność. Wielu programistom również trudno jest użyć tej stosunkowo starej metody z nowszymi systemami komputerowymi, ponieważ została ona stworzona przed pojawieniem się tych bardziej wydajnych maszyn.
Istnieje kilka metod, które można wykorzystać do zwiększenia wydajności sortowania bąbelkowego. Najskuteczniejsza wydaje się być metoda, w której algorytm działa płynniej, jeśli największe elementy listy zostaną umieszczone na wczesnym etapie procesu. Mając tę bazę na miejscu, ukończenie zamówienia reszty listy może zająć znacznie mniej przejść. Ten sposób porządkowania można zapisać w kodzie algorytmu.