Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void pobierz();
- template<typename T> T min_maks(T*, int, bool (*F)(T, T));
- template<typename T> bool mniejsze(T, T);
- template<typename T> bool wieksze(T, T);
- template<typename T> int binSearch(T*, T, int, int);
- int main() {
- // pobierz();
- int tab[] = {2, 4, 6, 8};
- int n = 3;
- // cout << min_maks(tab, n, wieksze);
- cout << binSearch(tab, 8, 0, 3);
- return 0;
- }
- void pobierz() {
- char in = cin.get();
- if(in == '.')
- return;
- else {
- pobierz();
- cout << in;
- }
- }
- template<typename T>
- T min_maks(T* typeArr, int size, bool (*F)(T, T)) {
- T ostatnia = *typeArr++;
- for(int i = 0; i < size - 1; i++) {
- T nastepna = *typeArr++;
- ostatnia = F(ostatnia, nastepna)? ostatnia : nastepna;
- }
- return ostatnia;
- }
- template<typename T>
- bool mniejsze(T pierwsza, T druga) {
- return pierwsza < druga;
- }
- template<typename T>
- bool wieksze(T pierwsza, T druga) {
- return pierwsza > druga;
- }
- template<typename T>
- int binSearch(T* arr, T value, int begin, int end) {
- while(begin <= end) {
- int center = (end - begin) / 2 + begin;
- T centerV = arr[center];
- if(value < centerV)
- end = center-1;
- else if(value > centerV)
- begin = center+1;
- else
- return center;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement