本文實例講述了C++二分查找在搜索引擎多文檔求交的應(yīng)用。分享給大家供大家參考。具體如下:
int search2(int array[], int n, int v){ int left, right, middle; left = 0, right = n - 1; while (left <= right) { middle = (left + right) / 2; if (array[middle] > v) { right = middle - 1; } else if (array[middle] < v) { left = middle + 1; } else { return middle; } } return -1;}int search3(int array[], int n, int v){ int left, right, middle; left = 0, right = n; while (left < right) { middle = (left + right) / 2; if (array[middle] > v) { right = middle; } else if (array[middle] < v) { left = middle + 1; } else { return middle; } } return -1;}二分查找的算法復(fù)雜度是log2n,是一種高效的查找。
在搜索中,會用到文檔求交,比如用戶的一個檢索,從各個集群上網(wǎng)上吐數(shù)據(jù),這些文檔之間可能是存在交集的,并且提供的數(shù)據(jù)是有序的,怎么得到交集文檔呢?
這個就可以使用二分查找,在多個有序的文檔數(shù)組中,挑選一個最短的,然后一次從中選取一個元素,在其它數(shù)組中進行二分查找,這樣就可以拿到交集文檔。
希望本文所述對大家的C++程序設(shè)計有所幫助。
新聞熱點
疑難解答