Qabarcıq çeşidləməsi qonşu elementləri müqayisə edir və səhv sıradadırlarsa, yerlərini dəyişir. Keçiddən sonra ən böyük element sona "qalxır". Bu, ən sadə çeşidləmə alqoritmidir və invariantlar ilə O(n²) təhlilinin yaxşı ilk nümunəsidir. Aşağıda işlənən xassələr çeşidləmənin xassələri dərsində izah olunub.
Alqoritm
i-ci keçiddə a[j], a[j + 1] cütlərini j n - 1 - i-yə qədər müqayisə edirik, çünki sondakı i element artıq yerindədir. İnvariant: i keçiddən sonra sondakı i element ən böyük i elementdir və çeşidlənmiş sıradadır.
a = [5, 1, 4, 2, 8]
n = len(a)
for i in range(n - 1):
swapped = False
for j in range(n - 1 - i):
if a[j] > a[j + 1]:
a[j], a[j + 1] = a[j + 1], a[j]
swapped = True
print("pass", i + 1, a)
if not swapped:
breakpass 1 [1, 4, 2, 5, 8]
pass 2 [1, 2, 4, 5, 8]
pass 3 [1, 2, 4, 5, 8]