Soru
Q1.De Determine the time complexity of the following int binarySearch(int arr[], int size, int target, int &comparisonCount) ( int left = 0; int right = size - 1: while (left <= right) int mid=left + (right - left) /2: comparisonCount++; // Count the comparison if (arr[mid]=-target) ( return mid; // Target found else if (arr[mid]target) left=mid+1; 11 Search in the right half else right = mid - 1; 11 Search in the left half
Çözüm
4.7214 Voting
Arif
Elit · 8 yıl öğretmeniUzman doğrulaması
Cevap
The time complexity of the given binary search function is O(log n).<br /><br />The binary search algorithm works by repeatedly dividing the search interval in half and determining whether the search key is in the middle of the interval. If the search key is less than the middle element, the algorithm continues the search in the lower half of the interval; otherwise, it continues in the upper half. This process continues until the search key is found or the search interval is empty.<br /><br />In the given function, the while loop runs until the left pointer is less than or equal to the right pointer. In each iteration of the loop, the algorithm calculates the middle index using the formula `mid = left + (right - left) / 2`. The comparison count is incremented each time the middle element is compared with the target.<br /><br />The time complexity of the binary search algorithm is O(log n) because the algorithm divides the search interval in half in each iteration. The number of iterations required to find the target is equal to the logarithm of the size of the search interval.<br /><br />Therefore, the time complexity of the given binary search function is O(log n).
Derecelendirmek için tıklayın: