O'ZBЕKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKЕNT AXBOROT TЕXNOLOGIYALARI UNIVЕRSITЕTI
AKTSIM fakulteti “Raqamli iqtisodiyot” yo`nalishi
2-bosqich 130-20-guruh talabasi Mo’ydinov Ma’murjonning
“Ma`lumotlar tuzilmasi va algoritmlar“ fanidan
3-laboratoriya ishi bo`yicha tayyorlagan
HISOBOTI
Bajardi: Mo’ydinov Ma’murjon
Tekshirdi: Rahmonov Asqar
Sana_____________
TOSHKENT-2021
3-laboratoriya ishi
Ketma-ket qidiruv
Informatika fanida chiziqli qidiruv yoki ketma-ket qidiruv ro'yxatdagi elementni topish usuli hisoblanadi. Moslik topilmaguncha yoki butun roʻyxat qidirilmaguncha u roʻyxatning har bir elementini ketma-ket tekshiradi.
Chiziqli qidiruv eng yomon chiziqli vaqtda amalga oshiriladi va ko'pi bilan n ta taqqoslashni amalga oshiradi, bu erda n - ro'yxat uzunligi. Agar har bir elementni izlash ehtimoli teng bo'lsa, chiziqli qidiruv o'rtacha n+1/2 taqqoslash holatiga ega, ammo har bir element uchun qidiruv ehtimoli o'zgarsa, o'rtacha holatga ta'sir qilishi mumkin. Chiziqli qidiruv kamdan-kam amaliy, chunki boshqa qidiruv algoritmlari va sxemalari, masalan, ikkilik qidiruv algoritmi va xesh-jadvallar qisqa roʻyxatlardan tashqari hamma narsani sezilarli darajada tezroq qidirishga imkon beradi.
Algoritm. Chiziqli qidiruv ro'yxatning har bir elementini maqsadli qiymatga mos keladigan elementni topmaguncha ketma-ket tekshiradi. Algoritm ro'yxatning oxiriga yetsa, qidiruv muvaffaqiyatsiz tugaydi.
Asosiy algoritm. Qiymatlari yoki yozuvlari L0 .... Ln−1 va maqsad qiymati T boʻlgan n ta elementdan iborat L roʻyxati berilgan boʻlsa, quyidagi quyi dastur L.dagi maqsadli T indeksini topish uchun chiziqli qidiruvdan foydalanadi.
i ni 0 ga tenglash.
Agar L[i] = T bo'lsa, qidiruv muvaffaqiyatli yakunlanadi; aks holda i ni 1 ga oshiriladi.
Agar i < n bo'lsa, 2-bosqichga o'ting. Aks holda, qidiruv muvaffaqiyatsiz tugaydi.
Variant 13
Ketma-ket qidiruv usulidan foydalanib ro’yhatda qo’shni elementlari bo’linmasi juft son bo’lgan elementni toping. Agar bunday elementlar ko’p bo’lsa, kattasini chiqaring
Dastur kodi
#include
#include
using namespace std;
int main(){
int n, son; std::cin >> n;
list royxat;
for(int i = 0; i < n; ++i){
std::cin >> son;
royxat.push_back(son);
}
int left, mid, right, max = 0;
float bolinma;
while (royxat.size())
{
left = royxat.back(); royxat.pop_back();
mid = royxat.back(); royxat.pop_back();
right = royxat.back(); royxat.pop_back();
bolinma = (left > right) ? (float)left / right : (float) right / left;
if(bolinma - (int)bolinma == 0 && (int)bolinma % 2 == 0 && mid > max)
max = mid;
royxat.push_back(right);
royxat.push_back(mid);
}
printf("Qo'shni elementlari bo'linmasi juft bo'lgan ro'yxat elementi %d\n", max);
return 0;
}
Natija
Do'stlaringiz bilan baham: |