Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <cmath>
- using namespace std;
- int linsearch(int *arr,int size_array, int key_search,int & k)
- {
- for(int i = 0; i < size_array; i++) {
- k++;
- if(arr[i] == key_search) return i;
- }
- return -1;
- }
- int binsearch(int arr[],int v,int l,int r,int & k)
- {
- while(r>=l)
- {
- int m = (l+r)/2;
- k++;
- if(v==arr[m]) return m;
- if(v<arr[m] ) r = m-1;
- else l=m+1;
- }
- return -1;
- }
- void Sort(int *arr,int size)
- {
- for(int i = 0; i < size; i++)
- for(int j = 0; j < size - 1; j++)
- if(arr[j] > arr[j+1]) swap(arr[j],arr[j+1]);
- }
- int main()
- {
- setlocale(0,"Rus");
- // Одномерный массив беззнаковых целых чисел
- // В массив занести 500 случайных чисел со значениями от -20 до 20.
- // массив безнаковых чисел! Препод ____дак
- const int size = 100; //
- int arr[size]; // int сменить на unsigned для безнаковых чисел
- int key; int k = 0;
- int l = 0;
- for(int i = 0;i < size;i++) {
- // arr[i] = rand() % 41 - 20;
- arr[i] = rand() % 1001;
- cout<< arr[i] <<" ";
- }
- Sort(arr,size);
- cout << endl;
- cout << "Линейный поиск, введите число " << endl;
- cin>>key;
- cout<<"Index "<<linsearch(arr,size,key,k)<<endl;
- cout << "Количество сравнений " << k << endl;
- k = 0;
- cout << "Бинарный поиск, введите число " << endl;
- cin>>key;
- cout<<"Index "<<binsearch(arr,key,0,size,k)<<endl;
- cout << "Количество сравнений " << k << endl;
- // getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement