Mavzu: qidiruv usullarini tadqiq qilish


Chiziqli bir bog’lamli ro’yhatdan key kalitga mos elementni ketma-ket qidiruv usuli yordamida izlab topish dasturi



Yüklə 0,51 Mb.
səhifə2/3
tarix03.03.2022
ölçüsü0,51 Mb.
#84300
1   2   3
MT 2

Chiziqli bir bog’lamli ro’yhatdan key kalitga mos elementni ketma-ket qidiruv usuli yordamida izlab topish dasturi.


Node *q=NULL;

Node *p=lst;

while (p !=NULL){

if (p->k == key){

search = p;

return search; }

q = p;

p = p->nxt;}



Node *s=new Node;;

s->k=key;

s->r=rec;

s->nxt= NULL;

if (q == NULL){ s->nxt=lst; lst = s; }

else q->nxt = s;

search= s;

return search;

Ro’yhatli tuzilmaning afzalligi shundan iboratki, ro’yhatga elementni qo’shish yoki o’chirish tez amalga oshadi, bunda qo’shish yoki o’chirish element soniga bog’liq bo’lmaydi, massivda esa elementni qo’shish yoki o’chirish o’rta hisobda barcha elementlarning yarmini siljitishni talab qiladi. Ro’yhatda qidiruvning samaradorligi taxminan massivniki bilan bir xil bo’ladi.

    1. Teng bo‘lish orqali qidiruv (ikkilik qidiruv) algoritmi


Faraz qilaylik, o’sish tartibida tartiblangan sonlar massivi berilgan bo’lsin. Ushbu usulning asosiy g’oyasi shundan iboratki, tasodifiy qandaydir AM element olinadi va u X qidiruv argumenti bilan taqqoslanadi. Agar AM=X bo’lsa, u holda qidiruv yakunlanadi; agar AM bo’lsa, u holda indekslari M dan kichik yoki teng bo’lgan barcha elementlar kelgusi qidiruvdan chiqarib yuboriladi. Xuddi shuningdek, agar AM >X bo’lsa, u holda indekslari M dan katta bo’lgan barcha elementlar kelgusi qidiruvdan chiqarib yuboriladi.

M ixtiyoriy tanlanganda ham taklif qilinayotgan algoritm korrekt ishlaydi. Shu sababali M ni shunday tanlash lozimki, tadqiq qilinayotgan algoritm samaraliroq natija bersin, ya’ni uni shunday tanlaylikki, iloji boricha kelgusi jarayonlarda ishtirok etuvchi elementlar soni kam bo’lsin. Agar biz o’rtacha elementni, ya’ni massiv o’rtasini tanlasak yechim mukammal bo’ladi. Misol uchun butun sonlardan iborat, o’sish bo’yicha tartiblangan massivdan ikkilik qidiruv usuli yordamida key kalitga mos elementni izlash dasturini ko’rib chiqamiz.

Dastur kodi

#include

using namespace std;

int main(){

int n;cout<<"n=";cin>>n;

int k[n];

for(int i=0;i>k[i];

int key, search;

cout<<"qidirilayotgan elementni kiriting=";cin>>key;

int low = 0;

int hi = n-1; int j=0;

while (low <= hi){

int mid = (low + hi) / 2;j++;

if (key == k[mid]){

search = mid;

cout<<"qidirilayotgan element "<

system("pause");

exit(0); }

if (key < k[mid])

hi = mid - 1;

else low = mid + 1; }

search=-1;

cout<

system("pause");}



Dastur natijasi

n=6

1 2 3 4 5 6

qidirilayotgan elementni kiriting=6

qidirilayotgan element 6 o'rinda turibdi va u 3 ta solishtirishda toplidi


    1. Yüklə 0,51 Mb.

      Dostları ilə paylaş:
1   2   3




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə