C++ 实现 O(log n) 时间复杂度算法:二分查找
"#include <iostream>\nusing namespace std;\n\nint binarySearch(int arr[], int n, int target) {\n\tint left = 0, right = n - 1;\n\twhile (left <= right) {\n\t\tint mid = left + (right - left) / 2;\n\t\tif (arr[mid] == target) {\n\t\t\treturn mid;\n\t\t} else if (arr[mid] < target) {\n\t\t\tleft = mid + 1;\n\t\t} else {\n\t\t\tright = mid - 1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nint main() {\n\tint arr[] = {1, 3, 5, 7, 9, 11, 13, 15};\n\tint n = sizeof(arr) / sizeof(arr[0]);\n\tint target = 9;\n\tint result = binarySearch(arr, n, target);\n\tif (result == -1) {\n\t\tcout << "Element not found." << endl;\n\t} else {\n\t\tcout << "Element found at index " << result << "." << endl;\n\t}\n\treturn 0;\n}\n"\n该代码实现了二分查找算法,它的时间复杂度为logn。在每一次循环中,将搜索区间减半,因此搜索的时间复杂度为logn。
原文地址: https://www.cveoy.top/t/topic/pNne 著作权归作者所有。请勿转载和采集!