Algoritmlarni loyihalashtirish fanidan



Download 248,29 Kb.
bet2/3
Sana30.12.2021
Hajmi248,29 Kb.
#96522
1   2   3
Bog'liq
2-lab

Chiziqli qidiruv – bunda berilgan kalit chiziqli ketma ketlikda to’plam elementlari orasidan qidirib chiqiladi. Bu algoritm ancha sodda lekin sekin hisoblanadi.



  1. Intervalli qidirish: Ushbu algoritmlar maxsus ajratilgan ma'lumotlar tuzilmalarida qidirish uchun mo'ljallangan. Ushbu turdagi qidiruv algoritmlari Linear Search-ga qaraganda ancha samaralidir, chunki ular qayta-qayta qidiruv tuzilmasi markaziga yo’naladi va qidiruv maydonini ikkiga bo’ladi. Masalan: Ikkilik qidiruv.


Ikkilik qidiruv algoritmi – Bu algoritm asosan to’plamni ikkiga bo’lishlar orqali qidirishdan iborat. Yani unda bo’linishlar toki kalit so’z topilmagunicha davom etadi.

Yuqoridagilardan tashqari qidiruv algoritmlarini quyidagi turlari mavjud:




  • Jump Search.

  • Interpolatsiya qidiruvi.

  • Eksponensial qidiruv.

  • Sublist qidiruv. Va h-k.

Misol tariqasida Ikkilik qidiruvni rekursiv shaklda Java dasturlash tilida ifoda qiladigan bo’lsey quyidagi ko’rinishga ega bo’ladi:


class BinarySearch {

int binarySearch(int arr[], int l, int r, int x)

{

if (r >= l) {



int mid = l + (r - l) / 2;

if (arr[mid] == x)

return mid;

if (arr[mid] > x)

return binarySearch(arr, l, mid - 1, x);

//


return binarySearch(arr, mid + 1, r, x);

}


//

return -1;

}
//

public static void main(String args[])

{

BinarySearch ob = new BinarySearch();



int arr[] = { 2, 3, 4, 10, 40 };

int n = arr.length;

int x = 10;

int result = ob.binarySearch(arr, 0, n - 1, x);

if (result == -1)

System.out.println("Element topilmadi");

else

System.out.println("Element indeksi - " + result);



}

}


Ixtiyoriy ma’lumot (yoki tuzilma elementi) boshqa ma’lumotdan biror bir belgisi orqali farq qiladi. Mazkur belgi kalit deb ataladi. Kalit noyob bo’lishi, ya’ni mazkur kalitga ega ma’lumot jadvalda yagona bo’lishi mumkin. Bunday noyob kalitga boshlang’ich (birinchi) kalit deyiladi. Ikkinchi kalit bir jadvalda takrorlansada u orqali ham qidiruvni amalga oshirish mumkin. Ma’lumotlar kalitini bir joyga yig’ish (boshqa jadvalga) yoki yozuv sifatida ifodalab bitta maydonga kalitlarni yozish mumkin. Agar kalitlar ma’lumotlar jadvalidan ajratib olinib alohida fayl sifatida saqlansa, u holda bunday kalitlar tashqi kalitlar deyiladi. Aks holda, ya’ni yozuvning bir maydoni sifatida jadvalda saqlansa ichki kalit deyiladi. Kalitni berilgan argument bilan mosligini aniqlovchi algoritmga berilgan argument bo’yicha qidiruv deb ataladi. Qidiruv algoritmi vazifasi kerakli ma’lumotni jadvaldan topish yoki yo’qligini aniqlashdan iboratdir. Agar kerakli ma’lumot yo’q bo’lsa, u holda ikkita ishni amalga oshirish mumkin:

1. Ma’lumot yo’qligini indikatsiya qilish (belgilash)

2. Jadvalga ma’lumotni qo’yish.

Faraz qilaylik, k – kalitlar massivi. Har bir k(i) uchun r(i) – ma’lumot mavjud. Key – qidiruv argumenti. Unga rec - informatsion yozuv mos qo’yiladi. Jadvaldagi ma’lumotlarning tuzilmasiga qarab qidiruvning bir necha turlari mavjud.

Ketma-ket qidiruv algoritmi

Mazkur ko’rinishdagi qidiruv agar ma’lumotlar tartibsiz yoki ular tuzilishi noaniq bo’lganda qo’llaniladi. Bunda ma’lumotlar butun jadval bo’yicha operativ xotirada kichik adresdan boshlab, to katta adresgacha ketma-ket qarab chiqiladi.

Massivda ketma-ket qidiruv (search o’zgaruvchi topilgan element tartib raqamini saqlaydi).

Ketma-ket qidiruv algoritmi C++ tilida quyidagicha bo’ladi:

int qidiruv(int key)

{ for (int i=0;i

if (k[i]==key) { search = i;return search;}

search = -1;

return search;

}}

Ushbu qidiruv usullarini o’rganish jarayonida biz tuzilmaning shakliga qarab biror kalitga mos elementni qidirishning optimal usulini qo’llashni o;rganishimiz va qidiruv usullarining samaradorligini taqqoslashni o’rganishimiz mumkin.Kompyuterda ma’lumotlarni qidirish asosiy amallardan biri hisoblanadi.Qidirishdan asosiy maqsad berilgan argument bo’yicha massiv ma’lumotlari ichidan mazkur argumentga mos ma’lumotlarni topish yoki bunday ma’lumot yo’qligini aniqlashdan iborat. Ixtiyoriy ma’lumot (yoki tuzilma elementi) boshqa ma’lumotdan biror bir belgisi orqali farq qiladi. Mazkur belgi kalit deb ataladi. Kalit noyob bo’lishi, ya’ni mazkur kalitga ega ma’lumot jadvalda yagona bo’lishi mumkin. Bunday noyob kalitga boshlang’ich (birinchi) kalit deyiladi. Ikkinchi kalit bir jadvalda takrorlansada u orqali ham qidiruvni amalga oshirish mumkin.



Transpozitsiya usuli

Ushbu usulda topilgan element ro’yhatda bitta oldingi element bilan o’rin almashtiriladi. Agarda mazkur elementga ko’p murojaat qilinsa, bittadan oldinga surilib borib natijada ro’yhat boshiga kelib qoladi. Ushbu usulning afzalligi shundaki, tuzilmada ko’p murojaat qilinadigan elementlar ro’yhat boshiga bitta qadam bilan intiladi.

Ushbu usulning qulayligi u nafaqat ro’yhatda, balki tartiblanmagan massivda ham samarali ishlaydi (sababi faqatgina ikkita yonma-yon turgan element o’rin almashtiriladi). Bu usulda uchta ko’rsatkichdan foydalanamiz

p – ishchi ko’rsatkich

q – yordamchi ko’rsatkich, p dan bitta qadam orqada bo’ladi

s – yordamchi ko’rsatkich, p dan ikkita qadam orqada bo’ladi



Biz tomonimizdan topilgan uchinchi element ro’yhat boshiga bir qadam suriladi (ya’ni ikkinchi bo’lib qoladi). Birinchi element ko’rsatkichi uchinchi elementga joylashtiriladi, ikkinchi element ko’rsatkichi to’rtinchi, shunday qilib uchinchi element ikkinchi joyga joylashib qoladi. Agar mazkur elementga yana bir bor murojaat qilinsa, u holda u ro’yhat boshida bo’lib qoladi.



node *s=NULL;

node *q=NULL;

node *p=table;

while (p != NULL){

if (key == p->k){ //transponerlaymiz

if( q ==NULL){//o‘rinlashtirish shart emas

search=p;

exit(0); }

q->nxt=p->nxt;

p->nxt=q;

if (s == NULL) table = p;

else s->nxt = p;

search=p; exit(0);

}

s=q;



q=p;

p=p->nxt; }

search=NULL;

exit(0);





Download 248,29 Kb.

Do'stlaringiz bilan baham:
1   2   3




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