Pythonda dastur kodi: a=map(int,input('massiv elementlarini kiriting: ').split()) a=list(a) key=int(input('Qidirilayotgan elementni kiritng: ')) def chiz_qid(a,key): for x in range(len(a)): if a[x]==key: return x+1 return -1 print(chiz_qid(a,key)) Binar qidiruv algoritmi C++ da dastur kodi:
#include
using namespace std;
// qidirish funksiyasi
int Search_Binary (int arr[], int left, int right, int key){
int midd = 0;
while (1) {
midd = (left + right) / 2;
if (key < arr[midd]) // agar kerakli qiymat yacheykadagi qiymatdan kichik bo'lsa
right = midd - 1; // qidiruvning o'ng chegarasini siljiting
else if (key > arr[midd]) // agar kerakli qiymat indeksdagi qiymatdan katta bo'lsa
left = midd + 1; // Chap tarafdagi qidiruv chizig'ini o'lchang
else
return midd; // funksiyasi indeksni chaqiradi
if (left > right) // agar chegara to'liq bo'lsa
return -1;
}
}
|
int main(){
setlocale (LC_ALL, "rus");
const int SIZE = 12;
int array[SIZE] = {};
int key = 0;
int index = 0; // yuqori qiymatli raqamlar indeksi
for (int i = 0; i < SIZE; i++) {
array[i] = i + 1;
cout << array[i] << " | ";
}
cout << "\n\nIxtiyoriy son kiriting: ";
cin >> key;
index = Search_Binary (array, 0, SIZE, key);
if (index >= 0)
cout << "Berilgan son joylashtirilgan: " << index << "\n\n";
else
cout << "Massivda bunday element yo'q!\n\n";
return 0;
}
| Pythonda dastur kodi: def binar_qid(lst,key): chap=0 ung=len(lst)-1 while ung>=chap: mid=(chap+ung)//2 if key ung=mid-1 elif key==lst[mid]: else: chap=mid+1 return -1 lst=[8,14,26,28,38,47,56,60,64,69,70,78,80,82,84,87,90,92,98,108] print(binar_qid(lst,82)) Mustaqil bajarish uchun topshiriq - Ketma-ket qidiruv usulidan foydalanib, ro’yxatda berilgan kalitdan katta elementlarni toping.
- Mashina raqamlari ro’yxati berilgan: 069, 070, 230, 345, 368, 564, 687, 701, 876, 905, 926, 937, 955. Binar qidiruvdan foydalanib berilgan raqamli mashina qaysi joyda turganini toping?
E’tiboringiz uchun rahmat!!!
Laboratoriya topshiriqlarini vaqtida bajaring va mustaqil bilimga ega bo’lin!!!
Do'stlaringiz bilan baham: |