它似乎是一种基于Mergesort的搜索算法.它用于排序的数字数组.Big-O复杂性仍然是O(n log n)吗?
public static boolean fastSearch(int[] data, int min, int max, int target)
{
int N = data.length;
boolean found = false;
int midpoint = (min+max)/2; // determine the midpoint
if (data[midpoint] == target) {
found = true;
} else {
if (data[midpoint] > target) {
if (min <= midpoint - 1) {
// Recursion on the left half of the array
found = fastSearch(data, min, midpoint-1, target);
}
} else {
if (midpoint + 1 <= max) { …Run Code Online (Sandbox Code Playgroud)