• Mustaqil ishi Bajardi: Yusupova Dilorom Qabul: Umurzaqova D.M Farg’na 2023 Mavzu
  • Reja
  • Linear Search
  • Mustaqil ishi Bajardi: Yusupova Dilorom Qabul: Umurzaqova D. M farg’na 2023 Mavzu




    Download 185.42 Kb.
    bet1/5
    Sana15.11.2023
    Hajmi185.42 Kb.
    #99352
      1   2   3   4   5
    Bog'liq
    malumotlar tuzilmasi va algoritm
    1-ШАХСИЙ ТОПШИРИҚ (4) (4), Nometall materiallar texnologiyasi. Karimov SH.A

    O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI


    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
    FARG‘ONA FILIALI
    “Kompyuter injiniringi” fakulteti
    Kompyuter injiniringi yo‘nalishi

    715-21Yusupova Diloromning


    “Ma’lumotlar tuzilmasi va algoritm ” fanidan
    Mustaqil ishi
    Bajardi: Yusupova Dilorom

    Qabul: Umurzaqova D.M


    Farg’na 2023


    Mavzu: Qidiruv algoritmlari:chiziqli va binary qidituv. Hesh funksiyasi va heshlash algoritmlarini tuzish.Sharalash usullari va ularni qo’llanish.


    Reja:

    1. Hesh tushunchasi.
    2. Hesh turlari va xossalari.
    3. Xeshlash(tirish) tushunchasi
    4. Hesh-funksiya va uning hossalari
    5. Ziddiyatlarning yuzaga kelishi
    6. Kolloziya holatini hal etish metodlari
    8Hulosa
    9.Foydanilgan adabiyotlar


    Aytaylik bizga massiv berilgan:
    a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    Bizga ushbu massivda biron bir element bor yoki yo'qligini tekshira oladigan dastur tuzish sharti qo'yilgan.
    Ushbu masalani yechishda eng birinchi xayolga keladigan usul - bu massivni ketma-ket har bir elementini solishtirib chiqish va bu usul:
    Chiziqli qidiruv - Linear Search deb ataladi, va bu usul kodi quyidagi ko'rinishda:
    func linearSearch(a []int, condidate int) int {
    for i := 0; i < len(a); i++ {
    if a[i] == condidate {
    return i
    }
    }
    return -1
    }
    Ko'rib turganingizdek, funksiyamiz 2 ta parametr qabul qiladi, birinchisi massivni o'zi, ikkinchisi esa biz qidirayotgan element. Agar uni topa olmasak, "-1" qiymatni qaytaramiz.
    Endi bundan optimal bo'lgan usul - binar(ikkilik) qidiruvni ko'rib chiqsak.
    Bu usulda ham funksiyaga 2 ta parametr, birinchisi massiv o'zi keyin esa biz qidirayotgan elementni parametr sifatida beriladi. Qidiruv esa quyidagicha:
    Dastlab biz massiv boshi va oxirini o'zimiz uchun o'zgaruvchilarda belgilab olamiz, mening kodimda bu left va right o'zgaruvchilaridur:
    left := 0 right := len(a)
    so'ngra quyidagi shart bajarilgan holda
    left < right
    quyidagi ketma-ket operatsiyalarni amalga oshiramiz

    1. left va right index lari markazidagi elementni topamiz (left + right) / 2

    2. topilgan elementimiz biz qidirayotgan elementga teng bo'lsa unda mid elementni javob sifatida qaytaramiz

    3. agar a[mid] elementimiz biz qidirayotgan elementdan kichkina bo'lsa biz left = mid deb belgilaymiz va shunda a[mid:right] bo'lagida qidiruv davom etadi.

    4. agar a[mid] elementimiz biz qidirayotgan elementdan katta bo'lsa demak right = mid deb belgilaymiz shunda qidiruv a[left:mid] bo'lagida qidiruv davom etadi.

    Shu zaylda qidiruv left < right shart bajarilmagunicha davom etadi, agar bu jarayonda biz qidirgan element topilmasa u xolda -1 javob qaytariladi, quyida dastur kodi keltirilgan:
    func binarySearch(a []int, condidate int) int {
    left := 0
    right := len(a)

    Download 185.42 Kb.
      1   2   3   4   5




    Download 185.42 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Mustaqil ishi Bajardi: Yusupova Dilorom Qabul: Umurzaqova D. M farg’na 2023 Mavzu

    Download 185.42 Kb.