Advertisement
Guest User

Untitled

a guest
May 27th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6.  
  7. int linsearch(int *arr,int size_array, int key_search,int & k)
  8. {
  9.     for(int i = 0; i < size_array; i++) {
  10.         k++;
  11.         if(arr[i] == key_search) return i;
  12.     }
  13.  
  14.     return -1;
  15. }
  16.  
  17. int binsearch(int arr[],int v,int l,int r,int & k)
  18. {
  19.     while(r>=l)
  20.     {
  21.     int m = (l+r)/2;
  22.     k++;
  23.     if(v==arr[m]) return m;
  24.     if(v<arr[m] ) r = m-1;
  25.     else l=m+1;
  26.     }
  27.     return -1;
  28. }
  29.  
  30. void Sort(int *arr,int size)
  31. {
  32.     for(int i = 0; i < size; i++)
  33.         for(int j = 0; j < size - 1; j++)
  34.             if(arr[j] > arr[j+1]) swap(arr[j],arr[j+1]);
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40.     setlocale(0,"Rus");
  41.     // Одномерный массив беззнаковых целых чисел
  42.     // В массив занести 500 случайных чисел со значениями от -20 до 20.
  43.     // массив безнаковых чисел! Препод ____дак
  44.     const int size = 100; //
  45.     int arr[size];      // int сменить на unsigned для безнаковых чисел
  46.     int key; int k = 0;
  47.     int l = 0;
  48.     for(int  i = 0;i < size;i++) {
  49.         // arr[i] =  rand() % 41 - 20;
  50.         arr[i] =  rand() % 1001;
  51.         cout<< arr[i] <<" ";
  52.     }
  53.     Sort(arr,size);
  54.     cout << endl;
  55.     cout << "Линейный поиск, введите число " << endl;
  56.     cin>>key;
  57.     cout<<"Index "<<linsearch(arr,size,key,k)<<endl;
  58.     cout << "Количество сравнений " << k << endl;
  59.     k = 0;
  60.    
  61.     cout << "Бинарный поиск, введите число " << endl;
  62.     cin>>key;
  63.     cout<<"Index "<<binsearch(arr,key,0,size,k)<<endl;
  64.     cout << "Количество сравнений " << k << endl;
  65.  
  66.    
  67.  
  68.     // getch();
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement