2-amaliy mashg’ulot Ishdan maqsad: Talabalar berilgan tuzilmaning shakliga qarab biror kalitga mos elementni qidirish va saralashning optimal usulini qo‘llashni o‘rganishlari va usullarining samaradorligini taqqoslashlari kerak.
Qo‘yilgan masala: Topshiriq variantidagi masalani so‘ralayotgan qidiruv, saralash usullari yordamida yechishning C++ tilidagi dasturini yaratish ko‘nikmasiga ega bo‘lish.
Ishni vazifasi:
Ma’lumotlarni qidirish usullari, algoritmlar va ularning samaradorligi.
Qidiruv tushunchasi va uning vazifasi.
Chiziqli qidiruv.
Binar qidiruv.
Qidirish usullari samaradorligi va optimallashtirish
Kompyuterda ma’lumotlarni qayta ishlashda qidiruv asosiy amallardan biri hisoblanadi. Uning vazifasi berilgan argument bo‘yicha massiv ma’lumotlari ichidan mazkur argumentga mos ma’lumotlarni topish yoki bunday ma’lumot yo‘qligini aniqlashdan 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 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:
Ma’lumot yo‘qligini indikatsiya qilish (belgilash)
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.