Posts

recursvr binarysearch

 // C++ program to implement recursive Binary Search #include <bits/stdc++.h> using namespace std;   // A recursive binary search function. It returns // location of x in given array arr[l..r] is present, // otherwise -1 int binarySearch(int arr[], int l, int r, int x) {     if (r >= l) {         int mid = l + (r - l) / 2;           // If the element is present at the middle         // itself         if (arr[mid] == x)             return mid;           // If element is smaller than mid, then         // it can only be present in left subarray         if (arr[mid] > x)             return binarySearch(arr, l, mid - 1, x);           // Else the element can only be present         // in right subarray         return binarySearch(arr, mid + 1, r, x);     }       // We reach here when element is not     // present in array     return -1; }   // Driver code int main() {     int arr[] = { 2, 3, 4, 10, 40 };     int x = 10;     int n = sizeof(arr) / sizeof(arr[0]);     int result = b

iterative bianry search

 // C++ program to implement iterative Binary Search #include <bits/stdc++.h> using namespace std;   // An iterative binary search function. int binarySearch(int arr[], int l, int r, int x) {     while (l <= r) {         int m = l + (r - l) / 2;           // Check if x is present at mid         if (arr[m] == x)             return m;           // If x greater, ignore left half         if (arr[m] < x)             l = m + 1;           // If x is smaller, ignore right half         else             r = m - 1;     }       // If we reach here, then element was not present     return -1; }   // Driver code int main(void) {     int arr[] = { 2, 3, 4, 10, 40 };     int x = 10;     int n = sizeof(arr) / sizeof(arr[0]);     int result = binarySearch(arr, 0, n - 1, x);     (result == -1)         ? cout << "Element is not present in array"         : cout << "Element is present at index " << result;     return 0; }

min max

 #include <iostream> #include <limits.h> using namespace std;   int setmini(int A[], int N) {     int mini = INT_MAX;     for (int i = 0; i < N; i++) {         if (A[i] < mini) {             mini = A[i];         }     }     return mini; } int setmaxi(int A[], int N) {     int maxi = INT_MIN;       for (int i = 0; i < N; i++) {         if (A[i] > maxi) {             maxi = A[i];         }     }     return maxi; } int main() {     int A[] = { 4, 9, 6, 5, 2, 3 };     int N = 6;

mrege sort

 #include <bits/stdc++.h> using namespace std;   // Merges two subarrays of array[]. // First subarray is arr[begin..mid] // Second subarray is arr[mid+1..end] void merge(int array[], int const left, int const mid,            int const right) {     int const subArrayOne = mid - left + 1;     int const subArrayTwo = right - mid;       // Create temp arrays     auto *leftArray = new int[subArrayOne],          *rightArray = new int[subArrayTwo];       // Copy data to temp arrays leftArray[] and rightArray[]     for (auto i = 0; i < subArrayOne; i++)         leftArray[i] = array[left + i];     for (auto j = 0; j < subArrayTwo; j++)         rightArray[j] = array[mid + 1 + j];       auto indexOfSubArrayOne = 0, indexOfSubArrayTwo = 0;     int indexOfMergedArray = left;       // Merge the temp arrays back into array[left..right]     while (indexOfSubArrayOne < subArrayOne            && indexOfSubArrayTwo < subArrayTwo) {         if (leftArray[indexOfSubArrayOne]