Mavzu: Qidiruv algoritmlari: chiziqli va binary qidiruv. Xesh funksiyalar va xesh algoritmlarini tuzish
Download 384.65 Kb.
|
1 2
Bog'liq2-amaliy mashg\'ulot
- Bu sahifa navigatsiya:
- Qo’yilgan masala
- Linear Search
- binar(ikkilik)
AMALIY MASHG’ULOT- 2 Mavzu: Qidiruv algoritmlari: chiziqli va binary qidiruv. Xesh funksiyalar va xesh algoritmlarini tuzish. Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar qanday qidirish usullari va algoritmlari mavjudligini va ularning samaradorliklarini baholashni o’rganishlari kerak. Shu asosda qidirish usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida qidirish bilan islashni va ularga oid dasturlar tuzishni o’zlashtirishlari kerak. Qo’yilgan masala: Talabalar topshiriq variantiga mos qidirish usuli yordamida masalani yechish dasturini yaratish ko’nikmasiga ega bo’lishlari kerak. Ish tartibi: 1.Tajriba ishi nazariy ma’lumotlarini o’rganish; 2.Berilgan topshiriqning algoritmini ishlab chiqish; 3. C++ dasturlash muhitida dasturni yaratish; 4. Natijalarni tekshirish; 5.Hisobotni tayyorlash va topshirish. Aytaylik bizga massiv berilgan: a[]={15, 23, 7, 45, 87, 16}; 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: #include usingnamespace std; int linearSearch(int array[], int size, int searchValue) { for(int i =0; i < size; i++) { if(searchValue == array[i]) { return i; } } return-1; } int main() { int a[]={15, 23, 7, 45, 87, 16}; int userValue; cout<<"Enter an integer: "<< endl; cin>> userValue; int result = linearSearch(a, 6, userValue); if(result >=0) { cout<<"The number "<< a[result]<<" was found at the" " element with index "<< result << endl; } else { cout<<"The number "<< userValue <<" was not found. "<< endl; } } 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'zgaruvchilaridir: left := 0 right := len(a) so'ngra quyidagi shart bajarilgan holda Download 384.65 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling