• r e e q w r q r 4. q t e e q r w q w r e e q w r
  • Mustaqil ishlash uchun masalalar: 1. C++ tilida xesh jadvallarni hosil qiling. 2. C++da xesh jadvallarning metodlarini qoʻllang
  • Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov




    Download 4,61 Mb.
    Pdf ko'rish
    bet106/111
    Sana18.05.2024
    Hajmi4,61 Mb.
    #241929
    1   ...   103   104   105   106   107   108   109   110   111
    Bog'liq
    ALGORITMLAR VA MA‟LUMOTLAR STRUKTURALARI

    r q r
     
    3.
     
    q w t e e q e w q r w q w r 
    q
     r 
    q w r q 
    r
     
    4.
     
    q w t e e q e w q r w 
    q w r q r
     
    q w r q r
     
    To'xtatish belgisi jadvali.
    Qismiy satrdagi elementning oxirgi o'rnini 
    belgilaydi (oxirgi harfdan tashqari). Agar qismiy satrda element 
    bo'lmasa, jadvalga 0 kiritiladi (bittadan raqamlash uchun) 
    Misol. Qismiy satr: qwrqr 


    196 
    Simvol 





    Oxirgi pozitsiya 





    1.
     
    q t e e q r 
    w
     q w r e e 
    q w r q 
    r
     
    2.
     
    q t e e q r 
    w
     q w r e e 

    w
     r q r 
     
    Suffiks jadvali. 
    Mumkin bo'lgan barcha qo'shimchalar uchun 
    jadvalda qismiy satrni o'zgartirish kerak bo'lgan eng kichik miqdor 
    ko'rsatilgan, u yana qo'shimchaga mos keladi. Agar bunday siljishning 
    iloji bo'lmasa, satrning uzunligi ko'rsatilgan. 
    Misol. Qismiy satr: qwrqr 
    Suffiks 
    Boʻsh 

    qr 
    rqr 
    wrqr 
    qwrqr 
    qadam 






    1.
     
    q t e e q r 
    w
     q w r e e 
    q w r q 
    r
     
    2.
     
    q t e e q r 
    w
     q w r e e 

    w
     r q r 
    3.
     
    q t e e q r w q 
    w
     r e e 
    q w r 
    q
     r 
    4.
     
    q t e e q r w q w 
    r
     e e 
    q w 

    q r 
     
    Algoritmning murakkabligi. 
    O (| haystack | + | needle | + | Σ |) 
    davriy bo'lmagan qismiy satrlar bo'yicha 
    O (| haystack | · | needle | + | Σ |) davriy
    haystack - berilgan satr, needle – qismiy satr, Σ - solishtirish uchun 
    alifbo 


    197 
    1991-yilda Koul shuni ko'rsatdiki, davriy bo'lmagan sxemalar 
    bo'yicha, algoritm satr bo'ylab to'liq o'tishda 3·|haystack| tadan ko'p 
    bo'lmagan taqqoslashni amalga oshiradi. 
     
    Boyer-Mura algoritmi (C++) 
    #include  
    using namespace std; 
    # define NO_OF_CHARS 256 
     
     
    void badCharHeuristic( string str, int size, int badchar[NO_OF_CHARS]) 

     
    int i; 
     
    for (i = 0; i < NO_OF_CHARS; i++) 
     
     
    badchar[i] = -1; 
     
    for (i = 0; i < size; i++) 
     
     
    badchar[(int) str[i]] = i; 

    void search( string txt, string pat) 

     
    int m = pat.size(); 
     
    int n = txt.size(); 
     
    int badchar[NO_OF_CHARS]; 
    badCharHeuristic(pat, m, badchar); 
     
    int s = 0;
     
    while(s <= (n - m)) 
     

     
     
    int j = m - 1; 
     
     
    while(j >= 0 && pat[j] == txt[s + j]) 
     
     
     
    j--; 
     
     
    if (j < 0) 
     
     

     
     
     
    cout << s << endl; 
     
     
     
    s += (s + m < n)? m-badchar[txt[s + m]] : 1; 
     
     

     
     
    else 
     
     
     
    s += max(1, j - badchar[txt[s + j]]); 
     



    198 

    int main() 

     
    string txt= "ABAAABCD"; 
     
    string pat = "ABC"; 
     
    search(txt, pat); 
     
    return 0; 

    Mavzu yuzasidan savollar: 
    1. Qismiy satrlarni izlash algoritmi nima? 
    2. Qismiy satrlarni izlash algoritmlarini foydalanish samaradorligini 
    taqqoslang 
    3. Suffiks jadvali nima?
    4. Satrlar uchun xesh funksiyasini qoʻllang 
    5. Robin-Karp va Boyer-Mur algoritmlarini taqqoslang? 
    Mustaqil ishlash uchun masalalar: 
    1. C++ tilida xesh jadvallarni hosil qiling.
    2. C++da xesh jadvallarning metodlarini qoʻllang 
     
     


    199 
    GLOSSARY 
    Abstrakt ma‟lumotlar turi (ADT – Abstract Data Type)
    - bu 
    ma‘lumotlar turlari uchun matematik model, bu yerda ma‘lumotlar turi 
    xatti-harakatlari (semantikasi) bilan foydalanuvchi nuqtai nazaridan 
    aniqlanadi 
    Algoritm
    - bu belgilaydigan cheklangan qoidalar toʻplami, muayyan 
    vazifalar toʻplamini hal qilish boʻyicha amallar ketma-ketligi va beshta 
    muhim xossaga ega: aniqlik, tushunarlilik, kiritish, chiqarish, 
    samaradorlik 

    Download 4,61 Mb.
    1   ...   103   104   105   106   107   108   109   110   111




    Download 4,61 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov

    Download 4,61 Mb.
    Pdf ko'rish