├── iterative.cpp └── recursive.cpp /iterative.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int binarySearchIterative(int array[], int left, int right, int objective) { 5 | while(left <= right) { 6 | int mid = left + (right - left) / 2; 7 | if (array[mid] == objective) return mid; 8 | if (array[mid] < objective) left = mid + 1; 9 | else right = mid - 1; 10 | } 11 | return -1; 12 | } 13 | int main() { 14 | int array[] = {1, 5, 10, 43, 101, 202}; 15 | int objective = 101; 16 | int sizeArray = 6; // sizeof(array) / sizeof(array[0]) 17 | int result = binarySearchIterative(array, 0, sizeArray - 1, objective); 18 | if (result == -1) { 19 | cout << "El elemento no se ha encontrado" << endl; 20 | } else { 21 | cout << "El Elemento se ha encontrado" << result << endl; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /recursive.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int binarySearchRecursive(int array[], int left, int right, int objective) { 5 | if (right >= left) { 6 | int mid = left + (right - left) / 2; 7 | if (array[mid] == objective) { 8 | return mid; 9 | } 10 | if (array[mid] > objective) { 11 | return binarySearchRecursive(array, left, mid - 1, objective); 12 | } 13 | return binarySearchRecursive(array, mid + 1, right, objective); 14 | } 15 | return -1; 16 | } 17 | int main() { 18 | int array[] = {1, 5, 10, 43, 101, 202}; 19 | int objective = 102; 20 | int sizeArray = 6; // sizeof(array) / sizeof(array[0]) 21 | int result = binarySearchRecursive(array, 0, sizeArray - 1, objective); 22 | if (result == -1) { 23 | cout << "El elemento no se ha encontrado" << endl; 24 | } else { 25 | cout << "El Elemento se ha encontrado" << result << endl; 26 | } 27 | } 28 | --------------------------------------------------------------------------------