“Ma’lumotlar tuzilmasi va algoritmlar” fanining maqsadi va vazifasi


k-қадам. k-1 қадамда ҳосил бўлган кетма-кетлик оддий қўшиш усули орқали сараланади. Эслатма: r1>r2>…>rk-1>rk=1



Download 17,57 Mb.
bet42/129
Sana29.11.2022
Hajmi17,57 Mb.
#874460
1   ...   38   39   40   41   42   43   44   45   ...   129
Bog'liq
@TUIT quiz MTA

k-қадам. k-1 қадамда ҳосил бўлган кетма-кетлик оддий қўшиш усули орқали сараланади.
Эслатма: r1>r2>…>rk-1>rk=1.
Мисол:
1-қадам. r1=8, яъни (a[0], a[8]), (a[1], a[9]), ... , (a[7], a[15]).

12

8

14

6

4

9

1

8

13

5

11

3

18

3

10

9

12

8

14

6

4

9

1

8

13

5

11

3

18

3

10

9

2-қадам. r2=4, яъни (a[0], a[4], a[8], a[12]), ..., (a[3], a[7], a[11], a[15]).

12

5

11

3

4

3

1

8

13

8

14

6

18

9

10

9

3-қадам. r3=2, яъни (a[0], a[2], a[4], a[6], a[8], a[10], a[12], a[14]), (a[1], a[3], a[5], a[7], a[9], a[11], a[13], a[15]).

4

3

1

3

12

5

10

6

13

8

11

8

18

9

14

9

4-қадам. r4=1, яъни (a[0], a[2], … , a[15]).

1

3

4

3

11

5

11

6

12

8

13

8

14

9

18

9

1

3

3

4

5

6

8

8

9

9

10

11

12

13

14

18

Изоҳ
Гарчи таққослашлар сони бир мунча ортиб борсада, элементларни ўринлаштиришлар анча кам бўлади.
Бу усул натижасида ҳар бир ўтишдан кейин саралашлар камайиб боради. Энг ёмон ҳолатда охирги ишни яккалик саралаш амалга оширади.
Эслатма
Шелл саралаш усулининг ягона тавсифи ҳар бир ўтишдан кейин қадамларни тўғри танлашдан иборат.
Қадамларни танлаш:
Р.Седжвик таклиф этган қадамлар:
Усул самарадорлиги:
Ўртача ҳолат - O(n7/6),
Энг ёмон ҳолат - O(n4/3).
Эслатма
Седжвик усули орқали қадамлар танланаётганда, агар 3*inc[s]>n бўлса, у ҳолда энг катта қадам inc[s-1] бўлади.

Шелл саралаши. Дастур коди


void shell(int *items, int count)
{
int i, j, qadam, k;
int x, a[]={7,3,2,1};
for(k=0; k < 4; k++) {
qadam = a[k];
for(i= qadam; i < count; ++i) {
x = items[i];
for(j=i- qadam; (x < items[j]) && (j >= 0); j=j- qadam)
items[j+ qadam] = items[j];
items[j+ qadam] = x;
}
}
}

Пирамидасимон саралаш


Def.
Пирамида деб баландлиги k бўлган шундай бинар дарахтга айтиладики, бунда
    • k-1 дарахт идеал мувозанатланган;
    • k-1 босқич тўла, k босқич эса чапдан ўнга томон тўлатилади.

<а1,а2,…, аi ,…,an> пирамида  i учун (аi а2i ) (аi а2i +1 )
Пирамидани массив кўринишида тасвирлаб олиш мақсадга мувофиқ бўлади.
Алгоритм
  • Бошланғич кетма-кетликдан пирамида шаклантирилади.
  • Кириш ва тайёр кетма-кетлик битта массивда сақланади. Пирамида бошини оламиз ва тайёр кетма-кетликка жойлаштирамиз. Кейин қолган элементлар учун пирамидани тиклаймиз. Мазкур жараён барча элементлар тугагунча давом этилади.

Пирамида қуришга мисол
Қадам
Қадам
Қадам
Қадам
Қадам
Чиқиш
Пирамидани саралаш
алмаштириш
алмаштириш
алмаштириш
алмаштириш
шакллантириш
шакллантириш
шакллантириш
шакллантириш
алмаштириш
шакллантириш
алмаштириш
шакллантириш
алмаштириш
шакллантириш
алмаштириш
шакллантириш
алмаштириш
Самарадорлик: T(n)=O(nlogn)
Тез саралаш (Quicksort)
Алгоритм ғояси
Бу усул алмаштириш усулидаги саралашга тегишли бўлиб унинг асосини калитларни танланган калитга нисбатан алмаштириш ташкил қилади.
Мисол:
Самарадорлик: T(n)=O(nlogn)

Тезкор саралаш дастур коди


void quick_sort(int *items, int left, int right)
{
int i = left; j = right, x = items[(left+right)/2]; /* выбор компаранда */
do {
while((items[i] < x) && (i < right)) i++;
while((x < items[j]) && (j > left)) j--;
if(i <= j) {
int y = items[i];
items[i] = items[j];
items[j] = y;
i++; j--;
}
} while(i <= j);
if(left < j) quick_sort(items, left, j);
if(i < right) quick_sort(items, i, right);
}

Мавзу бўйича назорат саволлари

  • Shell саралаши
  • Пирамида тушунчаси ва уни қуриш
  • Пирамидасимон саралаш
  • Тез саралаш тушунчаси

Ma'lumotlarni saralash algoritmlari.

TAD kafedrasi

Sharipov Bahodir Akilovich


Ma'lumotlarni saralash algoritmlari.
  • Saralash tushunchasi va uning vazifasi.
  • Saralashning qat’iy usullari va ularning samaradorligi.

1. Saralash tushunchasi va uning vazifasi.

Saralashbu berilgan to‘plam elementlarini biror bir tartibda (o‘sish yoki kamayish) joylashtirish jarayonidir.
Saralash (inglizcha sorting - tasniflash, tartiblash) - tanlangan mezonga qarab biror narsani ketma-ket joylashtirish yoki guruhlarga bo'lish.
Saralash– bu massiv elementlarini tartiblash (o’sish, kamayish, oxirgi raqami, bo’luvchilari bo’yicha, …)
Saralash deb, berilgan obyektlar ketma-ketligini ma`lum mantiqiy tartibda qayta joylashtirish jarayoniga aytiladi. Saralash bir necha ko`rsatkichlarga bog`liq bo`lishi mumkin. 
Ma'lumotlarni saralash - uni qandaydir atributga ko'ra tartibga solishdir.
Saralashdagi qiyinchiliklar quyidagi hollarda mavjud bo’ladi:
❌ ma'lumotlar massivlari katta bo’lganda - minglab, o'nlab va yuz minglab elementlar;
❌ ma'lumotlarga murojaat qilish qiyin bo'lishi mumkin (masalan, ular ma’lumotlar oqimi bo’lganda);
❌ kompyuterning imkoniyatlari yetarli emas va dasturlash tiliga kiritilganidan ko'ra tejamkorroq algoritmlar kerak.
Bunday hollarda saralashning ixtisoslashtirilgan algoritmlarini tanlash kerak, zarurat bo’lsa ularni masalaga qarab optimallashtirish mumkin.
Saralashdan maqsad - tartiblangan to‘plamda kerakli elementni topishni osonlashtirishdan iborat.
  • dasturlarni translyasiya qilishda;
  • ma’lumotlar majmuasini tashqi xotirada tashkil qilishda;
  • kutubxonalar, kataloglar, ma’lumotlar bazasini yaratishda va boshq.

Saralashning tadbiqi
Saralash masalasini formal qo‘yilishi
Berilgan: a1, a2 ,…, an, ob’ektlar to‘plami.
Talab qilinadi: Berilgan ob’ektlarni tartiblash, ularni shunday ap1, ap2 ,…, apn ketma-ketlikda o‘rinlashtirish lozimki, bunda ularning kalitlari kamaymaydigan tartibda joylashsin: kp1  kp2  …  kpn.
Def.
Saralash algoritmi turg‘un deyiladi, agarda saralash natijasida bir hil kalitli ob’ektlarlar bir-biriga nisbatan o‘rinlarini o‘zgartirmasa.

Download 17,57 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   129




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