O‘zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti
Download 458.87 Kb. Pdf ko'rish
|
CAL mustaqil ish
- Bu sahifa navigatsiya:
- Mavzu: Qidiruv algoritmlari va ularning vazifalari
- Chiziqli qidiruv
- Ikkilik qidiruv algoritmi
O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI RIVOJLANTIRISh VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOShKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“Algoritmlarni loyihalash” fanidan Mustaqil ish Mavzu: Qidiruv algoritmlari va ularning vazifalari
Bajardi: CAL 005 – guruh talabasi Ro’ziboyev Nodirbek
Toshkent 2020
Mavzu: Qidiruv algoritmlari va ularning vazifalari
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
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: 1. Ma`lumot yo‟qligini indikatsiya qilish (belgilash) 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 - informatsion yozuv mos qo’yiladi. Jadvaldagi ma`lumotlarning tuzilmasiga qarab qidiruvning bir necha turlari mavjud. Ma’lumotlarni qidirish algoritmlari bu – to’plam ma’lumotlar orasidan ma’lum bir kalit so’zga mos keluvchi elementlarni qidirshga aytiladi. Hozirgi davrda qidiruv algoritmlarisiz ishaydigan IT tizimlar deyarli mavjud emas. Ma’lumotlarni qidirish algoritimlari odatda ikki toifaga bo’linadi bular quyidagilar: 1. Tarkibiy qidiruv: Bunda ro'yxat yoki qator ketma-ket o'tkaziladi va har bir element tekshiriladi. Masalan chiziqli qidiruv. Chiziqli qidiruv – bunda berilgan kalit chiziqli ketma ketlikda to’plam elementlari orasidan qidirib chiqiladi. Bu algoritm ancha sodda lekin sekin hisoblanadi.
2. Intervalli qidirish: Ushbu algoritmlar maxsus ajratilgan ma'lumotlar tuzilmalarida qidirish uchun mo'ljallangan. Ushbu turdagi qidiruv algoritmlari Linear Search-ga qaraganda ancha samaralidir, chunki ular qayta-qayta qidiruv tuzilmasi markaziga yo’naladi va qidiruv maydonini ikkiga bo’ladi. Masalan: Ikkilik qidiruv.
qidirishdan iborat. Yani unda bo’linishlar toki kalit so’z topilmagunicha davom etadi.
Yuqoridagilardan tashqari qidiruv algoritmlarini quyidagi turlari mavjud: • Jump Search. • Interpolatsiya qidiruvi. • Eksponensial qidiruv. • Sublist qidiruv. Va h-k.
Misol tariqasida Ikkilik qidiruvni rekursiv shaklda Java dasturlash tilida ifoda qiladigan bo’lsey quyidagi ko’rinishga ega bo’ladi:
class BinarySearch { int binarySearch(int arr[], int l, int r, int x)
{
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
//
return binarySearch(arr, mid + 1, r, x);
//
return -1; }
// public static void main(String args[])
{
BinarySearch ob = new BinarySearch();
int arr[] = { 2, 3, 4, 10, 40 };
int n = arr.length;
int x = 10;
int result = ob.binarySearch(arr, 0, n - 1, x);
if (result == -1)
System.out.println("Element topilmadi");
else
System.out.println("Element indeksi - " + result);
} Download 458.87 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling