Dasturlash asoslari



Download 5,61 Mb.
bet35/111
Sana02.03.2022
Hajmi5,61 Mb.
#478034
1   ...   31   32   33   34   35   36   37   38   ...   111
Bog'liq
Dasturlash asoslari

4.1 Oddiy misol: Bubblesort

Ma’lumotlar maydonini tez-tez ko‘tariluvchi va pasayuvchi yo‘nalish bo‘yicha navlab turish zarur (Array). Buning uchun bir nechta algoritmlar mavjud. BubbleSort algoritmi juda tez algoritim hisoblanmaydi, lekin u etarlicha soda bo‘lgani tufayli endigina ushbu sohaga kiruvchilarga ham tushunarli. BubbleSort deb atalishiga sabab - bunda yirik elementlar sovun ko‘pigi kabi ko‘piradi, natijada eng yirik elementlar yuqorida va eng kichik elementlar esa pastga cho‘kadi.


Vazifa
BubbleSort algoritmida har doim ikkita yonma-yon joylashgan unsurlar bir-biri bilan qiyoslanadi. Bir unsur ikkinchisidan katta, unda har ikkala belgilar o‘rni almashtiriladi. So‘zimizga kichkina misol.


Dastlabki holat:
19 5 32 8


Birinchi ko‘rikdan o‘tkazish


19 5 32 8 >> 5 19 32 8
5 19 32 8 >> 5 19 32 8
5 19 32 8 >> 5 19 8 32


Ikkinchi ko‘rikdan o‘tkazish
5 19 8 32 >> 5 19 8 32
5 19 8 32 >> 5 8 19 32
5 8 19 32 >> 5 8 19 32

Har bir o‘tkazishda ma’lumotlar maydonining alohida elementi (Arrayelement) keyingisi bilan qiyoslanadi. Ma’lumotlar maydonining har bir elementida bitta tashqi va bitta ichki sikl bajariladi. Bu holatda bu erda to‘rtta siklik bajaruv bo‘ladi to‘g‘ri, ma’lumotlar maydonining bu namunasida (Array) ikkita ko‘rik o‘tkazuvidan keyinoq to‘g‘ri ajratilgan. Tegishli nazorat tekshiruvi yordamida endi navlarga ajratishni to‘xtatsa ham bo‘ladi, biroq «asosiy versiya» uchun birinchi marta bu kerak emas.




Dasturning bajarilishi
BubbleSort-algoritm funktsionalligini yaxshi Nassi/Shneidermann-Diagramm diagrammasi bilan ham ko‘rsatish mumkin edi, unga mos kodlash (deyarli) har qanday dasturlash tilida amalga oshishi mumkin.

BubbleSort Algorithm







x from 0 to ArrayLength







y from 0 to ArrayLength








y < ArrayLength

yes


no


Array[y] > Array[y+1]

yes


no




temp = Array[y]




Array[y] = Array[y+1]

Array[y+1] = temp




4.1-rasm. BubbleSort dasturining Nassi/Shneidermann-Diagramm diagrammasi

Element o‘zidan keyingi elementdan katta emasligini tekshirishdan navbatdagi tekshirish amalga oshiriladi. Ikkinchi so‘roqda ma’lumotlar maydoning y+1 indeksi foydalanishi sababli y indeksi ma’lumotlar maydonining eng yuqori indeksidan (ArrayLength) kichik bo‘lishi kerak. y eng katta element, deb faraz qilamiz, unda y+1 ma’lumotlar maydoni chegarasidan tashqaridagi xotira doirasida yotadi, biroq u mumkin bo‘lgan qiymatga ega bo‘lmaydi. Ba’zi kompilyatorlar (Compiler) bu o‘rinda ushbu so‘roqdan o‘tkazish bo‘lmasa darrov bajarilgan bo‘ladi (bu erda u juda ma’qul va foydalidir).


Shunday qilib «agar» (if-so‘rov) ichki so‘rovda eng muhim element uning ortitagi elementdan kattami, degan savol tekshiriladi. Agar shunday bo‘lsa, har ikkala qiymat o‘rni almashtiriladi.
Bu namunada ko‘tariluvchi ketma-ketlikda saralash o‘tkaziladi. Agar saralashni pasayuvchi ketma-ketlikda olib borish zarur bo‘lsa, qiyoslashni atigi “nisbatan katta”dan “nisbatan kichikka o‘zgartirish kerak bo‘ladi”.

Download 5,61 Mb.

Do'stlaringiz bilan baham:
1   ...   31   32   33   34   35   36   37   38   ...   111




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