Mullsorteerimine ehk uppuv sortimine on algoritm, mis sorteerib loendid järjekorda, töötades loendis üksuste vahetamiseks ja võrdlemiseks. Protsess võib toimuda mitu korda, enne kui loend on õiges järjekorras. Sort on oma nime saanud väikestest elementidest, mis tõusevad pidevalt nimekirja tippu nagu mullid joogis. Seda kasutatakse kõige sagedamini väikeste nimekirjade korra loomiseks.
Mullide sortimine töötab metoodiliselt, alustades loendi ülaosast. See algab esimese elemendi võrdlemisest teisega ja vajadusel vahetab neid. Seejärel jätkab see loendis allapoole ja teeb uuesti vahetuse, kui leiab midagi korrast ära. Iga kord, kui algoritm teeb vahetuse, alustatakse protsessi uuesti kas loendi ülemisest või alumisest osast.
Mullide sorteerimine on sortimisalgoritmide võrdlusrühmast. Seda tüüpi algoritm töötab kahte elementi korraga, määrates paarikaupa, kumb kahest väärtusest on suurem või kas need on võrdsed. Selline sortimine võib anda andmestikust piiratud ülevaate, kuid hõlbustada ka selle komplekti elementide peenhäälestamist. Teised võrdlusrühma algoritmitüübid hõlmavad kiir-, liitmis-, kokteili- ja tsüklisortimist.
Arvatakse, et teine lihtne võrdlussortimisalgoritm, mida nimetatakse sisestuspunktiks, toimib tõhusamalt, kuigi see on üles ehitatud sama lihtsale kontseptsioonile. Selle asemel, et esemeid järjestada ülevalt, sisestatakse need üksteise suhtes õiges järjekorras, kuni kogu komplekt on õigesti järjestatud. Paljudel juhtudel on see sort asendanud mullitüüpi nii õppekavades kui ka tavakasutuses.
Kuigi mulli sortimise algoritmi on lihtne kasutada ja arusaadav, on see praktiline ainult väikeste loendite jaoks. Kiirus ja tõhusus vähenevad koos loendis olevate üksuste arvu suurenemisega. Paljudel programmeerijatel on ka raske seda suhteliselt vana meetodit kasutada uuemate arvutisüsteemidega, kuna see loodi enne nende tõhusamate masinate olemasolu.
Mulli sortimise tõhususe suurendamiseks saab kasutada mõningaid meetodeid. Kõige tõhusam näib olevat meetod, mille puhul algoritm töötab sujuvamalt, kui loendi suurimad elemendid on paigutatud protsessi algusesse. Kui see alus on paigas, võib ülejäänud loendi tellimise lõpetamiseks kuluda palju vähem käike. Selle tellimismeetodi saab kirjutada algoritmi koodi.