Ishlash tartibi:
1. togridan_togri_almashtirish funksiyasi ro'yxatni o'z ichiga qabul qilib
oladi.
2. Ikki to'g'ridan-to'g'ri for tsikli orqali o'zgaruvchilarni solishtirib ketadi.
3. Har bir takrorlashda, yuqori qiymatni pastgi qiymat bilan solishtiradi.
4. Bu jarayon ro'yxat to'la tartiblangan bo'lguncha davom etadi.
4-savol:
Sheyker (to’lqinsimon) saralash usuli algoritmini yozing va misollar
yordamida tushuntirib bering.
Javob:
Sheyker (to'lqinsimon) saralash usuli, to'g'ridan-to'g'ri almashtirish usuli
(Bubble Sort) kabi o'zgaruvchilarni bir-biriga solishtirish asosida saralash algoritmi.
Sheyker saralash esa shu algoritmni boshqa bir usulida amalga oshiradi va takrorlash
jarayonini o'z ichiga olgan, ammo har bir takrorlashda ikki tomonlama solishtirish
usuli bilan saralashni amalga oshiradi.
6
Quyidagi Python kodi Sheyker (to'lqinsimon) saralash usulini tushuntiradi:
def sheyker_saralash(arr):
n = len(arr)
deyishdi = True
bosh = 0
oxir = n - 1
while (deyishdi == True):
# Oldingi takrorlash jarayonida
deyishdi = False
# Ortga yo'nalgan solishtirish
for i in range(bosh, oxir):
if (arr[i] > arr[i + 1]):
arr[i], arr[i + 1] = arr[i + 1], arr[i]
deyishdi = True
# Oxirgi takrorlash jarayonida
if (deyishdi == False):
break
deyishdi = False
# Ortga qaytarilgan solishtirish
oxir -= 1
for i in range(oxir - 1, bosh - 1, -1):
if (arr[i] > arr[i + 1]):
arr[i], arr[i + 1] = arr[i + 1], arr[i]
deyishdi = True
# Avvalgi takrorlash jarayonida
bosh += 1
# Misol
raqamlar = [64, 34, 25, 12, 22, 11, 90]
print("Boshlang'ich ro'yxat:", raqamlar)
7
sheyker_saralash(raqamlar)
print("Sheyker (to'lqinsimon) saralangan ro'yxat:", raqamlar)
|