• Chiziqli (Ketma-ket) qidiruv.
  • Qidiruv tushunchasi va uning vazifasi




    Download 1 Mb.
    bet3/8
    Sana07.10.2024
    Hajmi1 Mb.
    #273965
    1   2   3   4   5   6   7   8
    Bog'liq
    Ma\'lumotlar tuzilmasi va algaritim-1

    Qidiruv tushunchasi va uning vazifasi.


    Ma’lumki, axborot texnologiyalari jadal suratlar bilan EXMda ma’lumotlarni qayta ishlashda qidiruv asosiy amallardan biri bo’lib hisoblanadi. Uning vazifasi berilgan argument bo’yicha massiv ma’lumotlari ichidan mazkur argumentga mos ma’lumotlarni topishdan iborat.
    Ixtiyoriy ma’lumotlar majmuasi jadval yoki fayl deb ataladi. 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 xam 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 jadvalda topish yoki yo’qligi aniqlashdan iboratdir. Agar kerakli ma’lumot yo’q bo’lsa, u holda ikkita ishni amalga oshirish mumkin:

        1. ma’lumot yo’qligini indikasiya (belgilash) qilish

        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 - informasion yozuv mos qo’yiladi. Jadvaldagi ma’lumotlarning tuzilmasiga qarab qidiruvni bir necha turlari mavjud.

    Chiziqli (Ketma-ket) qidiruv.


    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 raqamini saqlaydi).
    C++ tilida dastur quyidagicha bo’ladi: #include
    #include
    int search(int a[], int N, int key)
    {
    int i=0;
    while (i!=N)
    if (a[i]==key) return i; else i++;
    return -1;
    }
    main ()
    {
    int i, N, mas[1000], key, P;
    cout<<”Masiv uzunligini kiriting!”<>N;
    cout<<”Massiv elementlarini kiriting!”<cin>>mas[i];
    cout<<”Qidiruv elementini kiriting!”<>key;
    P=search(mas,N,key);
    if (P==-1) cout<<”Bunday element massivda yoq”; else cout<<”Bunday element bor”<
    getch(); return 0;
    }
    Massivda ketma-ket qidiruv algoritmi samaradorligini bajarilgan taqqoslashlar soni M bilan aniqlash mumkin. Mmin = 1, Mmax = n. Agar ma’lumotlar massiv yacheykasida bir hil extimollik bilan taqsimlangan bo’lsa, u holda Msr  (n + 1)/2 bo’ladi.
    Agar kerakli element jadvalda bo’lmasa va mazkur elementni jadvalga qo’shish lozim bo’lsa, u holda yuqoridagi dasturdagi oxirgi ikkita operator quyidagiga almashtiriladi.
    Paskalda
    n:=n+1;
    k[n]:=key;
    r[n]:=rec; search:=n; exit;

    Download 1 Mb.
    1   2   3   4   5   6   7   8




    Download 1 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Qidiruv tushunchasi va uning vazifasi

    Download 1 Mb.