Muhammad Al-Xorazmiy nomidagi
Toshkent Axborot Texnologiyalari Universtiteti
Dasturiy injiniring fakulteti 317-20-guruh
Ma’lumotlar tuzilmasi va Algoritmlari
2-laboratoriya ishi
Mavzu: QIDIRUV ALGORITMLARI: CHIZIQLI VA BINARY QIDIRUV
Bajardi: Abdullayev Fazliddin
Toshkent-2021
Labaratoriya ishi-2 topshiriqlari
Topshiriq 1. Qidiruv masalalarini algoritmi va dasturini yozing
1-variyant. Ketma-ket qidiruv usulidan foydalanib, A massiv eng kichik elementini toping.
2-variyant. A massiv berilgan, A massivdagi elementlar orasidan 30 dan katta elemeni toping.
3-variyant. Ketma-ket qidiruv usulidan foydalanib, A massiv elementlari orasidan 3(3,6,9, …) ga karralilarini ekranga chiqaring.
4-variyant. Ketma-ket qidiruv usulidan foydalanib moduli 20 dan katta va 50 dan kichik elementlarni toping.
5-variyant. Ketma-ket qidiruv usulidan foydalanib, A massiv elementlari orasidan 4(4,8,…) ga karralilarini ekranga chiqaring.
6-variyant. Ketma-ket qidiruv usulidan foydalanib 50 dan katta sonlarni ekranga chiqaring.
7-variyant. Ketma-ket qidiruv usulidan foydalanib, A massivda elementlarni va taqqoslashlar sonini toping.
8-variant. Binar qidiruvdan foydalanib elementlami tasodifiy ravishda toping.
9-variant. Mashina raqamlari ro’yxati bcrilgan: 145, 368. 876, 945, 511, 387, 230. Binar qidiruvdan foydalanib berilgan raqamli mashina qaysi joyda turganini toping.
10-variant. Ro’yxatda har ikkinchi elementni qidiring va taqqoslashair sonini aniqlang.
11-variant. Qo’shni elementlari ayirmasi juft va 3 ga bo’linadigan elementni toping. Agar bunday element mavjud bo’lmasa - shunga mos ma’lumot chiqaring.
12-variant. Berilgan massiv elementlari ichidan eng katta elementni topilsin.
13-variant. Berilgan massiv elementlari ichidan eng kichik elementi topilsin.
14-variant. 11 ga butun bo’linuvchi eng katta sonni toping (agar bunday sonlar ko’p bo’lsa, u holda ularning eng kattasini toping; agar bunday son mavjud bo’lmasa - shunga mos ma’lumot chiqaring).
15-variant. 11 ga butun bo’linuvchi eng katta sonni toping (agar bunday sonlar ko’p bo’lsa, u holda ularning eng kichigini toping; agar bunday son mavjud bo’lmasa - shunga mos ma’lumot chiqaring).
16-variant. Qo’shni elementlari ayirmasi 72 dan kichik bo'lgan elementni toping. Agar bunday elementlar ko’p bo’lsa, u holda ularning eng kattasini toping; agar bunday element mavjud bo’lmasa shunga mos ma’lumot chiqaring.
17-variant. Qo’shni elementlari bo’linmasi juft son bo’lgan elementni toping. Agar bunday elementlar ko’p bo’lsa, u holda ularning eng kattasi yoki eng kichigini toping; agar bunday element mavjud bo’lmasa - shunga mos ma’lumot chiqaring.
18-variant. Kerakli elementdan keyingi elementlarning o’rtacha kvadratik qiymati 10 dan kichik bo’lgan elementni toping. Agar bunday elementlar ko’p bo’lsa, u holda ularning eng kattasini toping; agar bunday element mavjud bo’lmasa- shunga mos ma’lumot chiqaring.
Variant – 9
Dastur kodi:
import java.util.Arrays;
public class Binar {
public static void main(String[] args) {
int raqamlar[] = new int[7];
raqamlar[0] = 145;
raqamlar[1] = 368;
raqamlar[2] = 876;
raqamlar[3] = 945;
raqamlar[4] = 511;
raqamlar[5] = 387;
raqamlar[6] = 230;
Arrays.sort(raqamlar);
for (int i = 0; i < raqamlar.length; i++) {
System.out.print(raqamlar[i]+" ");
}
search(0,raqamlar.length,100,raqamlar);
}
public static void search(int left, int right, int number, int mas[]) {
int middle;
if ((left + right) % 2 == 0) {
middle = (left + right) / 2;
} else {
middle = (left + right - 1) / 2;
}
if (number == mas[middle]) {
System.out.println("\n" + "Javob: " + middle);
} else if (middle == 0 || middle == mas.length) {
System.out.println("\n" + "Bunday raqam yo'q");
} else if (number > mas[middle]) {
search(middle, right, number, mas);
} else if (number < mas[middle]) {
search(left, middle, number, mas);
}
}
}
Dastur natijasi:
Do'stlaringiz bilan baham: |