5 – mavzu. Saralashning sodda algoritmlari. Saralashning yaxshilangan algoritmlari Reja



Download 69,98 Kb.
bet7/7
Sana30.12.2021
Hajmi69,98 Kb.
#89261
1   2   3   4   5   6   7
Bog'liq
МТА 5мавзу

Algoritm samaradorligi:

taqqoslashlar soni M = ,

almashtirishlar soni Cmax = 3 .
Saralashning yaxshilangan usullari
Quiksort – tez saralash usuli

G’oyasi: Bu usul almashtirish usulidagi saralashga tegishli bo’lib uning asosini kalitlarni tanlangan kalitga nisbatan ajratish tashkil qiladi.


6 dan chap tomonda kalitlari kichik, o’ng tomonda esa kalitlari 6 dan katta bo’lgan elementlar joylashadi (yuqoridagi chizma).

procedure Sort (L, R: integer);

begin

i := L;


j := r;

x := a[(L + r) div 2];

repeat

while a[i] < x do



i := i + 1;

while a[j] > x do

j := j - 1;

if i <= j then

begin

y := a[i];



a[i] := a[j];

a[j] := y;

i := i + 1;

j := j - 1

end;

until i > j;



if L < j then sort (L, j);

if i < r then sort (i, r);

end;
procedure QuickSort;

begin


sort (1, n);

end;


Algoritm samaradorlig:

O(n log n) – eng samarali usul.


Shell saralashi (qisqarib boruvchi qadamlar orqali saralash)
To’g’ri qo’shish usulini 1959 yilda D. Shell tomonidan mukammallashtirish taklif qilingan. Quyidagi chizmada ushbu usul tasvirlangan:

Boshida bir biridan 4 qadamda joylashgan elementlar o’zaro guruhlanib saralash amalga oshiriladi. Bunday jarayon to’rtlik saralash deb ataladi. Birinchi o’tishdan keyin elementlar qayta guruhlanib, endi har ikki qadamdagi elementlar taqqoslanadi. Bu esa ikkilik saralash deb nomlanadi. Va nihoyat, uchinchi o’tishda oddiy yoki yakkalik saralashi amalga oshiriladi.

Bir qarashda mazkur usul bilan saralash amalga oshirilganda saralash jarayoni kamayish o’rniga ortib boradigandek tuyulsada, elementlarni o’rin almashtirishlar nisbatan kam amalga oshiriladi.

Ko’rinib turibdiki, bu usul natijasida tartiblangan massiv hosil bo’lib, har bir o’tishdan keyin saralashlar kamayib boradi. Eng yomon holatda oxirgi ishni yakkalik saralash amalga oshiradi.

Baryer usulidan foydalanilganda har bir saralash o’zining baryeriga ega bo’lishi lozim hamda dastur uning joyini aniqlashi uchun uni iloji boricha osonlashtirish lozim. Shuning uchun massivni [-h1..N] gacha kengaytirish lozim bo’ladi.

h[1..t] – qadamlar o’lchami massivi

a[1..n] - saralanayotgan massiv

k – saralash qadami

x – qo’shilayotgan element qiymati

Subroutine ShellSort

const t = 3;

h(1) = 5;

h(2) = 3;

h(3) = 1;

var


h: array [1..t] of integer;

a: array [1..n] of integer;

k, x, m, t, i, j: integer;

begin


for m = 1 to t do

begin


k:= h(m);

for i = k + 1 to n do

begin

x:= a(i);



for j = i-k downto k do

begin


if x < a(j ) then

a(j+k):= a(j);

else

goto 1;


end ;

end;


end;

1: a(j+1) = x ;



end;

end .
Umuman olganda, qanday qadamlar tanlanganda eng yaxshi natija olinishi isbotlanmagan bo’lsada, lekin bu qadamlar biri ikkinchisini ko’paytuvchilari bo’lmasligi lozimligi aniqlangan.



D. Knut qadamlarni quyidagicha ketma-ketligini taklif qilgan (teskari tartibda): 1,3,7,15,31,…,ya’ni: hm-1=2hm+1, ht=1, t = [log2n] - 1. Agar qadamlar ushbu ko’rinishda aniqlansa, algoritm samaradorligi tartibi O(n1.2).
Nazorat savollari

  1. Saralash deganda nimani tushunasiz?

  2. Saralashning asosiy usullarini aytib bering.

  3. Saralashning qaysi usulari qat’iy usulga tegishli?

  4. Saralashning yaxshilangan usullarini aytib bering.

  5. Qanday saralash turg’un deyiladi?

  6. To’g’ridan-to’g’ri qo’shish usuli g’oyasi nimadan iborat?

  7. To’g’ridan-to’g’ri tanlash usuli g’oyasi nimadan iborat?

  8. To’g’ridan-to’g’ri almashtirish usuli g’oyasi nimadan iborat?

  9. Yuqoridagi usullarning bir biridan farqini aytib bering.

  10. Qaysi saralash usuli eng samarali bo’lib hisoblanadi?

  11. Shell usuli qaysi asosiy saralash usuliga tegishli?

Adabiyotlar.

1.Adam Drozdek. Data structure and algorithms in C++. Fourth edition. 2013. Chapter 9.
Download 69,98 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish