#include #include #include // for rand #include // for sort using namespace std; void swapAttempt(int x, int y ); void test1(){ int x = 10; int y = 20; swapAttempt(x, y); cout << "x: " << x << endl; cout << "y: " << y << endl; } void swapAttempt(int x, int y ){ int temp = x; x = y; y = temp; } void swapWithPointers(int* x, int* y){ int temp = *x; *x = *y; *y = temp; } void swapWithReference(int &x, int &y){ int temp = x; x = y; y = temp; } int binarySearch(const vector &nums, int findMe){ int low = 0; int high = nums.size() - 1; while( low <= high ){ int middle = (high+low)/2; int middleElement = nums[middle]; if( middleElement == findMe ){ // we've found the element, so return it return middle; }else if( findMe < middleElement ){ high = middle - 1; }else{ // findMe > middleElement low = middle+1; } } return -1; } int testBinarySearch(int size){ vector v; srand(time(0)); // seed the random number generator based on the time for( int i = 0; i < size; i++ ){ v.push_back(rand()%size); } sort(v.begin(), v.end()); cout << "vector:"; for( int i = 0; i < v.size(); i++ ){ cout << " " << v[i]; } cout << endl; cout << "binarySearch(7): " << binarySearch(v, 7) << endl; } int main(){ testBinarySearch(20); }