Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void pobierz();
  6.  
  7. template<typename T> T min_maks(T*, int, bool (*F)(T, T));
  8. template<typename T> bool mniejsze(T, T);
  9. template<typename T> bool wieksze(T, T);
  10. template<typename T> int binSearch(T*, T, int, int);
  11.  
  12. int main() {
  13. // pobierz();
  14.  
  15. int tab[] = {2, 4, 6, 8};
  16. int n = 3;
  17.  
  18. // cout << min_maks(tab, n, wieksze);
  19.  
  20. cout << binSearch(tab, 8, 0, 3);
  21. return 0;
  22. }
  23.  
  24. void pobierz() {
  25. char in = cin.get();
  26. if(in == '.')
  27. return;
  28. else {
  29. pobierz();
  30. cout << in;
  31. }
  32. }
  33.  
  34. template<typename T>
  35. T min_maks(T* typeArr, int size, bool (*F)(T, T)) {
  36. T ostatnia = *typeArr++;
  37. for(int i = 0; i < size - 1; i++) {
  38. T nastepna = *typeArr++;
  39. ostatnia = F(ostatnia, nastepna)? ostatnia : nastepna;
  40. }
  41. return ostatnia;
  42. }
  43.  
  44. template<typename T>
  45. bool mniejsze(T pierwsza, T druga) {
  46. return pierwsza < druga;
  47. }
  48.  
  49. template<typename T>
  50. bool wieksze(T pierwsza, T druga) {
  51. return pierwsza > druga;
  52. }
  53.  
  54. template<typename T>
  55. int binSearch(T* arr, T value, int begin, int end) {
  56. while(begin <= end) {
  57. int center = (end - begin) / 2 + begin;
  58. T centerV = arr[center];
  59. if(value < centerV)
  60. end = center-1;
  61. else if(value > centerV)
  62. begin = center+1;
  63. else
  64. return center;
  65. }
  66. return -1;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement