Мундарижа Кириш


Иккилик дарахт бўйича қидириш



Download 0,91 Mb.
bet18/37
Sana24.02.2022
Hajmi0,91 Mb.
#209294
1   ...   14   15   16   17   18   19   20   21   ...   37
Bog'liq
Мундарижа Кириш

2.1.2. Иккилик дарахт бўйича қидириш
Мақсад қийматни сараланган рўйхатнинг ўртадаги қиймати билан солиштириш уч хил натижа бериши мумкин: қийматлар тенг, мақсад қиймати рўйхат элементидан кичик ва мақсад қиймати рўйхат элементидан катта. Биринчи ва энг яхши ҳолда қидириш тугайди. Қолган икки ҳолда рўйхат ярмини ташлаб юборишимиз мумкин.
Агар мақсад қиймати ўрта элементдан кичик бўлса, у ҳолда у бу ўрта элемент олдида жойлашган бўлади. Агар у ўрта элементдан катта бўлса, у ҳолда у ўрта элементдан кейин жойлашган бўлади. Бу рўйхат ярмини ташлаб юборишга етарлича сабаб бўлади. Бу жараённи такрорлаб биз рўйхатнинг қолган қисмларини ярмини ташлаб юборишимиз мумкин. Натижада қуйидаги алгоритмга келамиз:
BinarySearch(list,target,N)
list
кўриладиган рўйхат
target мақсад қиймати
N рўйхат элементлари сони
start=1
end=N
while start<=end do
middle=(start+end)/2
select(Compare(list[middle],target)) from
case -1: start=middle+1
case 0: return middle
case 1: end=middle-1
end select
end while
return 0

Бунда Compare(х,у) функцияси -1, 0 ёки 1 қийматларни мос ҳолда x, x=y ёки x>y шартларда беради. Алгоритмлар таҳлилида Compare функцияни чақириш бир солиштириш деб ҳисобланади.


Ушбу алгоритмда агар мақсад қиймат топилган ўрта элементдан катта бўлса start ўзгарувчи middle қийматидан 1 га ошиққа таъминланади. Агар мақсад қиймат топилган ўрта элементдан катта бўлса end ўзгарувчи middle қийматидан 1 га камга таъминланади. Силижиш 1 эса ўрта элемент изланаётган қийматга тенг бўлмаган ҳол билан тушунтирилади.
Цикл ҳар доим тўхтайдими? Агар мақсад қиймат топилса буни return оператори таъминлайди. Агар керакли қиймат топилмаса, у ҳолда ҳар бир цикл итерациясида ё start нинг қиймати ошади ё end ўзгарувчининг қиймати камаяди. Бу уларнинг қиймати бир бирига яқинлашишини кўрсатади. Қандайдир вазиятда улар тенглашади ва цикл start=end=middle да яна бир бор бажарилади. Бу ўтишдан кейин (агар қидирилаётган элемент ушбу индексга мос келмаса) ё start қиймати middle ва end лардан 1 га катта бўлади, ё тескариси, end ўзгарувчи middle ва start лар қийматидан 1 га кам бўлади. Икки ҳолатда ҳам цикл while ёлғон бўлади ва цикл бошқа бажарилмайди. Шу туфайли цикл ҳар доим тўхтайди.
Алгоритм ҳар доим рўйхатни яримга бўлади ва биз таҳлилда қандайдир k учун N=2k-1 деб фараз қилайлик. Агар шундай бўлса, иккинчи ўтишда нечта элемент қолади? Учинчидачи? Умуман олганда, тушунарлики, агар цикл қандайдир ўтишда 2j-1 элементлт рўйхат билан ишласа, у ҳолда рўйхатнинг биринчи ярмида 2j-1-1 элемент бўлади, битта элемент ўртада ва 2j-1-1 элементлар рўйхатнинг иккинчи ярмида бўлади. Шунинг учун кейинги ўтишга 2j-1-1 элемент қолади (1 < j < k).

Download 0,91 Mb.

Do'stlaringiz bilan baham:
1   ...   14   15   16   17   18   19   20   21   ...   37




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