Skip to content

Instantly share code, notes, and snippets.

@derohimat
Created May 8, 2017 05:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derohimat/27ba7096815fdc0d1288bf188c4da12c to your computer and use it in GitHub Desktop.
Save derohimat/27ba7096815fdc0d1288bf188c4da12c to your computer and use it in GitHub Desktop.
#include <iostream>
#include <vector>
using namespace std;
void Binary_Search(const vector<int> &numbers, int value);
int main() {
vector<int> my_numbers;
for (int i = 0; i < 4000000; i++) my_numbers.push_back(i);
cout << "Size of vector my_nymbers :" << my_numbers.size() << endl;
Binary_Search(my_numbers, 2);
Binary_Search(my_numbers, 23);
Binary_Search(my_numbers, 234);
Binary_Search(my_numbers, 7655);
Binary_Search(my_numbers, 10101);
Binary_Search(my_numbers, 895543);
Binary_Search(my_numbers, 3785111);
return 0;
}
void Binary_Search(const vector<int> &my_numbers, int key) {
int iteration = 0, left = 0, right = (int) (my_numbers.size() - 1), mid = 0;
while (left <= right) {
iteration++;
mid = (left + right) / 2;
if (key == my_numbers[mid]) {
cout << "Binary search found " << my_numbers[mid] << " after " << iteration << " iterations.\n";
return;
} else if (key > my_numbers[mid])
left = mid + 1;
else
right = mid - 1;
}
cout << "Binary search did not found " << my_numbers[mid] << " after " << iteration << " iterations.\n";
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment