Bubble Sort — eng oddiy tartiblash algoritmlaridan biri. Uning ishlash prinsipi juda sodda: ro'yxat bo'ylab o'tib, qo'shni elementlarni solishtiradi va agar tartibsiz bo'lsa, ularni almashtiradi. Katta elementlar sekin-asta ro'yxatning oxiriga "ko'tariladi" — xuddi suvdagi ko'piklar kabi. Shu sababli algoritm "ko'pik tartiblash" deb ataladi.
Keling, algoritmni vizual ko'raylik:
[5, 3, 8, 1] misolida qadamma-qadam:
Birinchi o'tish (pass):
5 va 3 solishtir → 5 > 3, almashtir → [3, 5, 8, 1]5 va 8 solishtir → 5 < 8, o'zgarishsiz → [3, 5, 8, 1]8 va 1 solishtir → 8 > 1, almashtir → [3, 5, 1, 8]Ikkinchi o'tish:
3 va 5 solishtir → o'zgarishsiz → [3, 5, 1, 8]5 va 1 solishtir → 5 > 1, almashtir → [3, 1, 5, 8]Uchinchi o'tish:
3 va 1 solishtir → 3 > 1, almashtir → [1, 3, 5, 8]Natija: [1, 3, 5, 8] — tartiblandi!
Python'da Bubble Sort:
# Bubble Sort — asosiy kod
def bubble_sort(arr):
n = len(arr)
for i in range(n): # n marta o'tish
for j in range(n - 1 - i): # Har o'tishda bir element kamayadi
if arr[j] > arr[j + 1]: # Qo'shni elementlarni solishtir
# Almashtirishning qisqa usuli
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
sonlar = [5, 3, 8, 1]
natija = bubble_sort(sonlar)
print(natija) # [1, 3, 5, 8]Har bir o'tishda eng katta element o'z joyini topib, oxirga "suzib chiqadi". Shu sababli keyingi o'tishda uni yana tekshirishga hojat yo'q — n - 1 - i ifodasi aynan shuni ta'minlaydi.
Keling, kodning qanday ishlashini qadam-baqadam ko'rib chiqamiz:
Bubble Sort xususiyatlari:
Keyingi darsda biz Selection Sort ni o'rganamiz — u boshqacha yondashuv bilan ishlaydi.
Bubble Sort ni o'zi yozish
Quyidagi amallarni bajaring:
5 3 8 1 4)