24.04.2021
Kokteylni shaker saralash - Vikipediya
https://translate.google.com/translate?sl=en&tl=uz&u=https://en.wikipedia.org/wiki/Cocktail_shaker_sort
1/5
Kokteyl shaker turi
Mexnat shaker Saralash ,
[1]
Bundan tashqari, deb tanilgan sort, ikki tomonlama qabariq ,
[2]
mexnat sort , shaker sort (shuningdek, bir rivoyatda murojaat mumkin
tanlash turdagi
) ripple
turdagi , sort shuffle ,
[3]
, yoki tartiblash Shuttle , bir emas
qabariq turini
kengaytirish .
Algoritm ko'piklarni saralashni ikki yo'nalishda ishlash orqali kengaytiradi.
Ro'yxat boshiga
elementlarni tezroq ko'chirish
orqali qabariq tartibida yaxshilansa-da , u faqat ishlashning
cheklangan yaxshilanishlarini ta'minlaydi.
Ko'pikli navlarning ko'pgina variantlari singari, kokteyl shaker ham asosan ta'lim vositasi sifatida
ishlatiladi. Python va Java kabi mashhur dasturlash tillariga o'rnatilgan tartiblash kutubxonalari
tomonidan
timsort
yoki
birlashtirish tartiblash
kabi ko'proq
bajariladigan
algoritmlardan
foydalaniladi.
[4] [5]
Eng oddiy shakl har safar butun ro'yxat orqali o'tadi:
Kokteyl shaker turi
Sinf
Saralash algoritmi
Ma'lumotlar tarkibi
Array
Eng yomon ko'rsatkich
Eng yaxshi ko'rsatkich
O'rtacha ishlash
Eng yomon kosmik murakkablik
Psevdokod
24.04.2021
Kokteylni shaker saralash - Vikipediya
https://translate.google.com/translate?sl=en&tl=uz&u=https://en.wikipedia.org/wiki/Cocktail_shaker_sort
2/5
tartibi cocktailShakerSort (A : sortable ob'ektlar ro'yxati) hisoblanadi
qilish
almashtirish: = yolg'on
har bir i uchun 0 dan (A) - 2 gacha bo'lgan uzunlik :
agar A [i]> A [i + 1] bo'lsa, unda
// ikki element noto'g'ri
tartibda
(A [i], A [i +) ekanligini tekshiring. 1])
// ikkala
element joylarini o'zgartirishiga ruxsat bering
almashtirish: = rost
Agar oxirigacha
tugatish uchun
emas, balki, agar almashdilar keyin
hech swap sodir bo'lsa // biz bu erda tashqi Loop chiqish
mumkin.
break do-while loop
oxiri, agar
almashtirish: = yolg'on
har biri uchun I -yilda uzunligi (A) - 2 uchun 0 bajaring:
Agar A [i]> A [i + 1] , so'ngra
almashtirish (A [i], A [i + 1])
almashtirish: = rost
end agar
end
almashish paytida tugash
// agar hech qanday element almashtirilmagan
bo'lsa, u holda ro'yxat
tartib
tartibida
tugaydi
Birinchi o'ng tomonga o'tish eng katta elementni oxiriga to'g'ri joyiga
siljitadi va quyidagi chap
tomonga o'tish eng kichik elementni boshida to'g'ri joyiga o'tkazadi. Ikkinchi to'liq o'tish ikkinchi
eng katta va ikkinchi kichik elementlarni to'g'ri joylariga o'tkazadi va hokazo. I o'tganidan so'ng ,
ro'yxatdagi birinchi i va oxirgi i elementlari o'z joylarida joylashgan va ularni tekshirish shart
emas. Ro'yxatning har safar saralanadigan qismini qisqartirish orqali operatsiyalar sonini ikkiga
qisqartirish mumkin (
qabariq tartibiga
qarang ).
Bu so'nggi almashtirish indeksini eslab qolish va chegaralarni yangilashni optimallashtirish bilan
MATLAB / OCTAVE-da algoritmga misol.
funktsiyasi
A =
kokteylShakerSort
( A )